Java 三键键盘快捷键

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

我需要帮助在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()) {

你看起来击键很完美吗,谢谢。作为将来的参考,如果我想要一个键盘快捷键是ctrl+r+t,我会怎么做?我不知道是否可能有一个单一的输入事件同时代表多个非修改键,对不起。。。