Złap „podwójny” klawisz skrótu

Muszę złapać klawisz skrótuCtrl+Alt+C, C (co oznacza, naciśnijCtrl+Alt+C, tylko wydanieC i naciśnij go ponownie). Oto, co próbuję zrobić:

import com.tulskiy.keymaster.common._
import java.awt.event._
import javax.swing.KeyStroke

class KeysCatcher {

  val provider = Provider.getCurrentProvider(true)
  val ctrlC = KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK + ActionEvent.ALT_MASK)

  val listener = new HotKeyListener() {
    def onHotKey(hotKey: HotKey): Unit = {
      hotKey.keyStroke match {
        case `ctrlC` =>
          println("Ctrl+Alt+C 1 was pressed")

          val listener2 = new HotKeyListener() {
            def onHotKey(hotKey: HotKey): Unit = {
              hotKey.keyStroke match {
                case `ctrlC` => println("Ctrl+Alt+C 2 was pressed")
              }
            }
          }

          provider.register(ctrlC, listener2)
      }
    }
  }

  provider.register(ctrlC, listener)
}

Kiedyś wpadłem na pomysłCtrl+Alt+C jest wciśnięty Muszę ponownie zarejestrować ten sam skrót i go złapać. Od drugiego naciśnięcia miałem zamiar włączyć timerC powinien być dość szybki. Ale myślę, że poszedłem w złym kierunku, ponieważ byłoby to dość skomplikowane.

Twoje myśli? P.S. Nie ma tam okna, łapieświatowy Klawisz skrótu. Próbowałem też wielu rzeczy z Internetu i nie działało tak, jak chciałem, więc przed podaniem mi kodu przetestuj go.

Chociaż ten przykład to Scala, Java również byłaby w porządku.

Zależność:

https://github.com/tulskiy/jkeymaster

//build.scala
val jkeymaster = "com.github.tulskiy" % "jkeymaster" % "1.1" 

questionAnswers(1)

yourAnswerToTheQuestion