我需要帮助在我的Java程序中创建键盘快捷键。从下面的代码中可以看出,我需要一个键盘快捷键 Ctrl + T ,它可以正常工作并打印"test"
,但快捷方式< kbd> 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;
}
}
);
答案 0 :(得分:5)
InputEvent
的修饰符是位字段,因此您使用按位运算测试它们,而不仅仅是==
。但更简单的方法是使用is*Down()
的{{1}}方法:
InputEvent