Einstellen von drei Schaltflächenbeschleunigungsschlüssel -Hotschlüssel in Java (OSX)
-
20-09-2019 - |
Frage
Ich versuche, ein paar Hot-Keys in der Java-Anwendung zu ändern, auf die ich wokring bin, und es scheint, dass das System, das ich verwende, möglicherweise nicht mit drei Tastenkombinationen funktioniert. Wir haben derzeit einen JMenuitem -Artikel und setzen den Hotkey mit einem Anruf wie folgt:
menuItem.setAccelerator(getAcceleratorKey(accelerator));
Und hier ist die GetacceleratorKey -Methode:
private KeyStroke getAcceleratorKey(int keyCode) {
return KeyStroke.getKeyStroke(
keyCode,
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),
false);
}
Es scheint, dass der Schlüsselcode, den diese Methode als Parameter verwendet, nur eine Taste sein kann, die mit dem Befehl gedrückt wird. Wie würde ich dann so etwas wie Befehlsheben Z für rückgängig machen? Muss ich eine andere Klasse verwenden?
Lösung
Keystroke.getkeystroke () nimmt Modifikatoren als Parameter. Eine Kombination von ihnen sollte Ihnen geben, was Sie wollen:
KeyStroke.getKeyStroke(keyCode,
java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow