忽略由轻量级组件生成的AWT组件上的Java鼠标事件
我有一个在AWT组件上打开的JFileChooser(我们使用GLCanvas进行一些openGL渲染)。如果我双击文件选择器中的图标将其关闭,则鼠标单击将传递到GLCanvas。我已经读到,轻量级组件上的鼠标事件将被传递给重量级组件,但是有没有办法检测何时发生这种情况?双击GLCanvas会执行另一个操作,我不希望在用户双击关闭对话框时发生这种情况。您可以为轻量级组件上的鼠标事件创建事件处理程序,然后在其内部不执行任何操作,这将停止向较重组件的传播 比如:忽略由轻量级组件生成的AWT组件上的Java鼠标事件,java,swing,awt,mouseevent,Java,Swing,Awt,Mouseevent,我有一个在AWT组件上打开的JFileChooser(我们使用GLCanvas进行一些openGL渲染)。如果我双击文件选择器中的图标将其关闭,则鼠标单击将传递到GLCanvas。我已经读到,轻量级组件上的鼠标事件将被传递给重量级组件,但是有没有办法检测何时发生这种情况?双击GLCanvas会执行另一个操作,我不希望在用户双击关闭对话框时发生这种情况。您可以为轻量级组件上的鼠标事件创建事件处理程序,然后在其内部不执行任何操作,这将停止向较重组件的传播 比如: public void mo
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
+我也这么想,但我不太确定。此外,您只需通过以下方式注册一个
MouseAdapter
-addMouseListener(newmouseadapter(){})
。这将有效地做同样的事情,没有冗长。这样可能更好,至少更简洁。这是我第一个想到的。@mre,是的,我刚刚添加了一个新的MouseAdapter,但概念上还是一样的。