Hallo,
ich arbeite mit einem Baum. Auf einem Knoten kann man mit der rechten Maustaste ein Kontextmenü (JPopupMenu) öffnen.
Mein Problem ist fogendes:
Wenn im Baum der Knoten X markiert ist und der Benutzer auf Knoten Y das Kontextmenü öffnet soll und wird Knoten Y markiert. Wenn der Benutzer aber nun das Kontextmenü mit ESC wieder schließt, soll wieder Knoten X markiert werden.
Wie fange ich ab, dass der Benutzer ESC gedrückt hat bzw. wo muß man den KeyListener plazieren ?
Ich habe es bereits erfolglos am JPopupMenu und am MenuItem versucht.
Danke
Arni
Moin
Wie fange ich ab, dass der Benutzer ESC gedrückt hat bzw. wo
muß man den KeyListener plazieren ?
Für sowas benutzt man keine KeyListener (da sich popups auch anders schliessen lassen):
Implementier javax.swing.event.PopupMenuListener und achte auf popupMenuWillBecomeInvisible(PopupMenuEvent e) und popupMenuCanceled(PopupMenuEvent e).
cu
Danke für die Antwort.
Allerdings löst das auch nicht ganz mein Problem. die Methode „popupMenuWillBecomeInvisible“ wird ja immer aufgerufen wenn das Menu verschwindet egal ob etwas ausgewählt wurde oder nicht. D.h. ich weiß also nicht ob das Menü mit ESC abgebrochen wurde. Die Methode „popupMenuCanceled“ wird bei mir dagegen nie aufgerufen. Wann wird diese Methode eigentlich aufgerufen ?
Hast Du noch eine Idee ?
Danke
Arni
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Eine Idee die zumindest funktioniert ist an den JMenuItem einen MenuKeyListener zu hängen. In der Methode menuKeyPressed kann man dann die ESC-Taste abfangen.
Arni
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]