Java 三键键盘快捷键
我需要帮助在Java程序中创建键盘快捷键。从下面的代码中可以看出,我需要一个键盘快捷键Ctrl+T,它可以正常工作并打印Java 三键键盘快捷键,java,awt,keyboard-events,Java,Awt,Keyboard Events,我需要帮助在Java程序中创建键盘快捷键。从下面的代码中可以看出,我需要一个键盘快捷键Ctrl+T,它可以正常工作并打印“test”,但是快捷键Ctrl+Shift+T不会像预期的那样打印“test2”,不会发生任何情况: KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher( new KeyEventDispatcher() { public boolean dispatc
“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()) {
你看起来击键很完美吗,谢谢。作为将来的参考,如果我想要一个键盘快捷键是ctrl+r+t,我会怎么做?我不知道是否可能有一个单一的输入事件同时代表多个非修改键,对不起。。。