2013-09-25 15 views
6

Chcę zapytać, czy mogę uzyskać kombinację klawiszy wielu kluczy. Na przykład mogę uzyskać kod klucza z tego przykładu:Uzyskaj kod kombinacji klawiszy

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

Ale jak mogę uzyskać klucz kod przykład:

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; 
       } 

Czy to możliwe, aby uzyskać kombinację klawiszy kodu tych klawiszy Ctrl + Tab lub Ctrl + A?

Odpowiedz

11

Nie, obsługiwane keyEvent ma tylko jeden główny KeyCode, na przykład ten kod

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

zajmie TAB, ALT + TAB lub CTRL + TAB itd Jeśli tylko interesuje CTRL + TAB, masz 2 możliwości:
1) za pomocą isControlDown()

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

2) przy KeyCodeCombination

final KeyCombination kb = new KeyCodeCombination(KeyCode.TAB, KeyCombination.CONTROL_DOWN); 
... 
... 
public void handle(KeyEvent event) { 
    if (kb.match(event)) { 
    } 
} 
+0

Weź również pod uwagę 'KeyCombination.SHORTCUT_DOWN'. "Dzięki użyciu modyfikatora skrótu klawiszowego programiści mogą tworzyć niezależne od platformy skróty." – trashgod

+1

Problem polega na tym, że działa on również wtedy, gdy naciskasz tylko klawisz Tab bez opcji Control_Down. Jak zrobić Handler, który zadziała tylko wtedy, gdy oba klawisze zostaną naciśnięte? –

Powiązane problemy