在Swing中捕获热键

时间:2013-11-23 16:04:21

标签: java swing hotkeys

我想抓住一些包含Ctrl+P,P Ctrl+P两个字母键的热键,然后按P而不释放Ctrl),但下面的代码不起作用:

KeyStroke.getKeyStroke(KeyEvent.VK_P & KeyEvent.VK_P, InputEvent.CTRL_MASK)
//or
KeyStroke.getKeyStroke(KeyEvent.VK_P | KeyEvent.VK_P, InputEvent.CTRL_MASK)

它仅捕获Ctrl+P

1 个答案:

答案 0 :(得分:2)

然后你需要使用两个单独的KeyStrokes并分别捕获每个KeyStroke。例如:

KeyStroke p = KeyStroke.getKeyStroke('P'); 
KeyStroke control = KeyStroke.getKeyStroke("control P");

阅读How to Use Key Bindings上Swing教程中的部分以获取更多信息。