8

複数のキーのキーコードの組み合わせを取得できますか?たとえば、次の例からキー コードを取得できます。

public void handle(KeyEvent event) {
    if (event.getCode() == KeyCode.TAB) {
    }
}

しかし、この例のキーコードを取得する方法:

textField.setText("");
// Process only desired key types
if (event.getCode().isLetterKey()
        || event.getCode().isDigitKey()
        || event.getCode().isFunctionKey()) {
    String shortcut = event.getCode().getName();
    if (event.isAltDown()) {
        shortcut = "Alt + " + shortcut;
    }
    if (event.isControlDown()) {
        shortcut = "Ctrl + " + shortcut;
    }
    if (event.isShiftDown()) {
        shortcut = "Shift + " + shortcut;
    }
    textField.setText(shortcut);
    shortcutKeyEvent = event;
} else {
    shortcutKeyEvent = null;
}

これらのキーのキー コードの組み合わせを取得することは可能ですCtrl + TabCtrl + A?

4

2 に答える 2

19

いいえ、ハンドルkeyEventには main が 1 つしかありません。KeyCodeたとえば、次のコードです。

public void handle(KeyEvent event) {
    if (event.getCode() == KeyCode.TAB) { 
    }
}

TABALT + TAB、またはなどを処理CTRL + TABします。 のみに関心がCTRL + TABある場合は、2 つの選択肢があります
。1) isControlDown() を使用する

public void handle(KeyEvent event) {
    if (event.getCode() == KeyCode.TAB && event.isControlDown()) { 
    }
}

2) KeyCodeCombination の使用

final KeyCombination kb = new KeyCodeCombination(KeyCode.TAB, KeyCombination.CONTROL_DOWN);
...
...
public void handle(KeyEvent event) {
    if (kb.match(event)) { 
    }
}
于 2013-09-28T12:30:26.217 に答える