Java Mouselistener - Veranstaltungen
-
22-08-2019 - |
Frage
Hat jeder wissen, ob die folgenden werden die erwarteten Verhaltensweisen in Bezug auf was MouseEvent
s abgefeuert werden? Man scheint an anderer Stelle fehlen oder verbraucht zu werden.
-
Rechtsklick auf
JPanel
und AnzeigeJPopupMenu
:MousePressed java.awt.event.MouseEvent[MOUSE_PRESSED, (469,347),absolute(2214,490),button=3,modifiers=Meta+Button3, extModifiers=Button3,clickCount=1] MouseReleased java.awt.event.MouseEvent[MOUSE_RELEASED, (469,347),absolute(2214,490),button=3,modifiers=Meta+Button3, extModifiers=Meta,clickCount=1] MouseClicked java.awt.event.MouseEvent[MOUSE_CLICKED, (469,347),absolute(2214,490),button=3,modifiers=Meta+Button3, extModifiers=Meta,clickCount=1]
So weit so gut all 3 von Taste 3 und in der richtigen Reihenfolge
-
Mit
JPopupMenu
noch zeigen Linksklick irgendwo in derJPanel
nicht in derJPopupMenu
:Was geschah mit dem
MousePressed
Ereignisse?MouseReleased java.awt.event.MouseEvent[MOUSE_RELEASED, (452,339),absolute(2197,482),button=1,modifiers=Button1,clickCount=1] MouseClicked java.awt.event.MouseEvent[MOUSE_CLICKED, (452,339),absolute(2197,482),button=1,modifiers=Button1,clickCount=1]
Vielen Dank im Voraus.
Lösung
So das Ereignis, das das Popup-Menü führt zu schließen, ist verschwunden.
IIRC, genau wie dies umgesetzt wird geändert 1,5-1,6. In 1.5 gibt es eine Glasspane, in 1,6 AWTEventListener
s verwendet werden. Siehe BasicPopupMenuUI
Quellen für weitere Einzelheiten. Es sieht aus, als ob Sie können (global) das Ereignis beenden wird verbraucht mit:
UIManager.put("PopupMenu.consumeEventOnClose", false);