dan*_*382 2 java awt keyboard-events
我需要帮助在我的Java程序中创建键盘快捷键.从下面的代码中可以看出,我需要一个键盘快捷键Ctrl+ + T正常工作并打印"test",但快捷键Ctrl+ Shift+ T没有"test2"按预期打印,没有任何反应:
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(
new KeyEventDispatcher() {
public boolean dispatchKeyEvent(KeyEvent e) {
switch (e.getID()) {
case KeyEvent.KEY_PRESSED:
if (e.getKeyCode() == java.awt.event.KeyEvent.VK_T &&
e.getModifiers() == java.awt.event.InputEvent.CTRL_MASK) {
System.out.print("test");
} else if (e.getKeyCode() == java.awt.event.KeyEvent.VK_R &&
e.getModifiers() == java.awt.event.InputEvent.CTRL_MASK &&
e.getModifiers() == java.awt.event.InputEvent.SHIFT_MASK) {
System.out.print("test2");
}
break;
}
return true;
}
}
);
Run Code Online (Sandbox Code Playgroud)
a的修饰符InputEvent是一个位字段,因此您使用按位运算来测试它们,而不是简单==.但更简单的方法是使用以下is*Down()方法InputEvent:
if (e.getKeyCode() == java.awt.event.KeyEvent.VK_R &&
e.isControlDown() && e.isShiftDown()) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
884 次 |
| 最近记录: |