有谁知道以下是否是触发 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 中有一个 glasspane,1.6 中使用了 AWTEventListener。有关详细信息,请参阅 BasicPopupMenuUI
源。看来您可以(全局)停止使用事件:
UIManager.put("PopupMenu.consumeEventOnClose", false);
关于Java MouseListener - 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/869923/