Bitte kein Menü bei F10

RungetSvohu

Bekanntes Mitglied
Hallo! :applaus:

Ich habe meine F10 für eine bestimmte Aktion selbst belegt, nun öffnet sich beim Druck aber zusätzlich das implementierte JMenu. Wie lässt sich das deaktivieren?

Danke! 😀
 
Die Listener removen.

oder einen eventuell vorhandenen Handelt Flag setzten.

Ohne mehr infos nicht beantwortbar.
 
Zeig mal deinen Code?

Benutzt du ein bestimmtes Framework?

Erweiterst du ein Framework?

Wenn ich in meiner Anwendung auf F10 reagiere udn zwei dinge damit machen möchte, dann muss ich mich ja entscheiden oder?
 
Ich glaube sein Problem ist, dass Windows beim druck auf f10 immer in die Menüleiste springt, probiers in deinem Browser aus wenn du auf Windows surfst - mein Firefox markiert ein Menü.
Du kannst nachsehen, ob dein Menü auf F10 über ein KeyBinding hat und dieses löschen/überschreiben.
 
Ich glaube sein Problem ist, dass Windows beim druck auf f10 immer in die Menüleiste springt, probiers in deinem Browser aus wenn du auf Windows surfst - mein Firefox markiert ein Menü.
Du kannst nachsehen, ob dein Menü auf F10 über ein KeyBinding hat und dieses löschen/überschreiben.

Genau, auch im Firefox wird da das erste Menü markiert, in meinem Programm wird es sogar geöffnet, da es nur ein Menü besitzt.

Ich habe das hier ausprobiert:

Java:
menuBar.getInputMap().put(KeyStroke.getKeyStroke("F10"), "none");
Wobei menuBar die JMenuBar ist.

Leider ändert das nichts. Ich habe menuBar auch durch das Menü selbst ersetzt, das ändert leider auch nichts.
 
Ich hab mir schon sowas in der Art gedacht, ist wohl so eine Windows UI Sache um die man nicht so leicht rumkommt - vergleiche mit Alt + F4...
Was du versuchen könntest wäre dein Menü/Item/Bar auf setSelected False zu setzen bzw. den Fokus weiterzugeben, wenn deine F10 Action ausgeführt wird.
[TIPP]Das schon versucht: EclipseZone - Need to disable F10 key's Menu Focus in ...[/TIPP]
 
Zuletzt bearbeitet:
Ich hab mir schon sowas in der Art gedacht, ist wohl so eine Windows UI Sache um die man nicht so leicht rumkommt - vergleiche mit Alt + F4...
Was du versuchen könntest wäre dein Menü/Item/Bar auf setSelected False zu setzen bzw. den Fokus weiterzugeben, wenn deine F10 Action ausgeführt wird.
[TIPP]Das schon versucht: EclipseZone - Need to disable F10 key's Menu Focus in ...[/TIPP]

Der Code aus deinem Tipp funktioniert:

Java:
menuBar.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F10"), "none");

Vielen Dank!
 
Wie gesagt funktioniert die Sache, doch ein Problem gibt es noch dabei. Bevor ich F10 drücke, ist ein TextField im Fokus. Durch den Druck von F10 scheint der aber so halb wegzugehen. Denn danach macht der Rechner beim nächsten Tastendruck Bing, bei dem folgenden Tastendruck ist der Fokus dann wieder da und ich kann ins TextField weiterschreiben. Das heißt, nach dem Druck von F10 geht der ein Tastendruck verloren. Das ist natürlich nicht gewollt. Ein
Java:
field.requestFocus();
im KeyListener hilft leider auch nicht.
 

Zurück
Oben