Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忽略由轻量级组件生成的AWT组件上的Java鼠标事件_Java_Swing_Awt_Mouseevent - Fatal编程技术网

忽略由轻量级组件生成的AWT组件上的Java鼠标事件

忽略由轻量级组件生成的AWT组件上的Java鼠标事件,java,swing,awt,mouseevent,Java,Swing,Awt,Mouseevent,我有一个在AWT组件上打开的JFileChooser(我们使用GLCanvas进行一些openGL渲染)。如果我双击文件选择器中的图标将其关闭,则鼠标单击将传递到GLCanvas。我已经读到,轻量级组件上的鼠标事件将被传递给重量级组件,但是有没有办法检测何时发生这种情况?双击GLCanvas会执行另一个操作,我不希望在用户双击关闭对话框时发生这种情况。您可以为轻量级组件上的鼠标事件创建事件处理程序,然后在其内部不执行任何操作,这将停止向较重组件的传播 比如: public void mo

我有一个在AWT组件上打开的JFileChooser(我们使用GLCanvas进行一些openGL渲染)。如果我双击文件选择器中的图标将其关闭,则鼠标单击将传递到GLCanvas。我已经读到,轻量级组件上的鼠标事件将被传递给重量级组件,但是有没有办法检测何时发生这种情况?双击GLCanvas会执行另一个操作,我不希望在用户双击关闭对话框时发生这种情况。

您可以为轻量级组件上的鼠标事件创建事件处理程序,然后在其内部不执行任何操作,这将停止向较重组件的传播

比如:

    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,但概念上还是一样的。