Question

Je suis en train de changer quelques touches de raccourci dans l'application java je suis wokring sur et il semble que le système que je me sers peut ne pas fonctionner avec trois boutons combinaisons de touches. Nous avons actuellement un élément JMenuItem et nous avons mis la touche de raccourci avec un appel comme celui-ci:

menuItem.setAccelerator(getAcceleratorKey(accelerator));

Et voici la méthode GetAcceleratorKey:

    private KeyStroke getAcceleratorKey(int keyCode) {

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

Il semble que le code d'activation que cette méthode prend comme paramètre ne peut être une touche enfoncée avec la commande. Alors, comment pourrais-je faire quelque chose comme z Commande décalage pour undo? Ai-je besoin d'utiliser une autre classe?

Était-ce utile?

La solution

KeyStroke.getKeyStroke () prend des modificateurs comme paramètre. Une combinaison d'entre eux devrait vous donner ce que vous voulez:

KeyStroke.getKeyStroke(keyCode, 
  java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top