Pegue uma tecla de atalho "dupla"
Eu tenho que pegar uma tecla de atalhoCtrl+Alt+C, C
(significado, pressioneCtrl+Alt+C
, solte apenasC
e pressione novamente). Aqui está o que estou tentando fazer:
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)
}
Eu tive a ideia de que uma vezCtrl+Alt+C
é pressionado Eu tenho que registrar a mesma tecla de atalho novamente e pegá-lo. Eu ia envolver um timer desde a segunda edição doC
deve ser bem rápido. Mas acho que tomei o caminho errado, já que seria bastante complicado.
Seus pensamentos? P.S. Não há janela lá, pega umglobal atalho. Eu também tentei muitas coisas da Internet e não funcionou como eu queria, então antes de me fornecer qualquer código, por favor, teste-o.
Embora este exemplo seja Scala, Java também seria bom.
Dependência:
https://github.com/tulskiy/jkeymaster
//build.scala
val jkeymaster = "com.github.tulskiy" % "jkeymaster" % "1.1"