我需要帮助在我的 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;
}
}
);
最佳答案
InputEvent
的修饰符是一个位字段,因此您可以使用按位运算来测试它们,而不仅仅是 ==
。但更简单的方法是使用 InputEvent
的 is*Down()
方法:
if (e.getKeyCode() == java.awt.event.KeyEvent.VK_R &&
e.isControlDown() && e.isShiftDown()) {
关于java - 3 键键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663931/