2

Javaプログラムでキーボードショートカットを作成するのに助けが必要です。以下のコードでわかるように、正しく機能して印刷されるCtrl+キーボードショートカットが必要ですが、ショートカット+ +は期待どおりに印刷されず、何も起こりません。T"test"CtrlShiftT"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;
        }
    }
);
4

1 に答える 1

5

の修飾子はInputEventビットフィールドであるため、単純にではなく、ビット単位の演算を使用してテストします==。しかし、より簡単なアプローチは、次のis*Down()メソッドを使用することですInputEvent

if (e.getKeyCode() == java.awt.event.KeyEvent.VK_R && 
    e.isControlDown() && e.isShiftDown()) {
于 2012-09-30T18:58:24.713 に答える