2013-09-25 5 views
6

Я хочу спросить, можно ли получить комбинацию клавиш с несколькими ключами. Например, я могу получить код ключа из этого примера:Получить код комбинации клавиш

 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 + Tab или Ctrl + A?

ответ

11

Нет, обрабатываются keyEvent имеет только один главный KeyCode, например, этот код

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

будет обрабатывать TAB, ALT + 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)) { 
    } 
} 
+0

Также рассмотрите 'KeyCombination.SHORTCUT_DOWN'. «С помощью сочетания клавиш быстрого доступа разработчики могут создавать независимые от платформы ярлыки». – trashgod

+1

Проблема заключается в том, что она работает и при нажатии Tab без Control_Down. Как сделать обработчик, который будет работать только при нажатии обеих клавиш? –

Смежные вопросы