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?

War es hilfreich?

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
scroll top