Java MouseListener - 事件
-
22-08-2019 - |
题
有谁知道以下是否是预期行为 MouseEvent
被解雇了?其中一颗似乎在其他地方失踪或被消耗掉。
右键单击
JPanel
并显示JPopupMenu
: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]
到目前为止,按钮 3 中的所有 3 个按钮均按正确顺序排列
和
JPopupMenu
仍然显示左键单击某处JPanel
不在JPopupMenu
:发生了什么
MousePressed
事件?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]
提前致谢。
解决方案
这样导致弹出菜单关闭的事件就消失了。
IIRC,具体实现方式从 1.5 更改为 1.6。1.5中有一块玻璃板,1.6中有一块玻璃板 AWTEventListener
s 被使用。看 BasicPopupMenuUI
详细信息来源。看来您可以(全局)停止使用以下事件:
UIManager.put("PopupMenu.consumeEventOnClose", false);
不隶属于 StackOverflow