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

Jef*_*rey 3 java swing awt mouseevent

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

Hun*_*len 5

您可以为轻量级组件上的鼠标事件创建事件处理程序,然后在其中执行任何操作,这应该会阻止传播到较重的组件.

就像是:

    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) {}
Run Code Online (Sandbox Code Playgroud)

  • +1,我的想法是一样的,但我不太确定.此外,您只需按以下方式注册一个`MouseAdapter` - addMouseListener(new MouseAdapter(){})`.这将有效地做同样的事情,没有冗长. (3认同)