Domanda

Sto cercando di cambiare un paio di hot-keys in un'applicazione Java che sto wokring su e sembra che il sistema che sto usando potrebbe non funzionare con tre pulsanti combinazioni di tasti. Al momento abbiamo un elemento JMenuItem e abbiamo impostato la combinazione di tasti con una chiamata in questo modo:

menuItem.setAccelerator(getAcceleratorKey(accelerator));

E qui è il metodo getAcceleratorKey:

    private KeyStroke getAcceleratorKey(int keyCode) {

    return KeyStroke.getKeyStroke(
                    keyCode,
                    Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
                    false);
}

Sembra che il keyCode che questo metodo prende come parametro può essere solo premuto con il comando una chiave. Così come allora dovrei fare qualcosa di simile Comando-Maiuscole Z per annullare? Ho bisogno di usare una classe diversa?

È stato utile?

Soluzione

KeyStroke.getKeyStroke () prende modificatori come parametro. Una combinazione di essi dovrebbe darvi ciò che si vuole:

KeyStroke.getKeyStroke(keyCode, 
  java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top