我已经在主Jframe上实现了右键单击以打开菜单侦听器,除一个问题外,它工作正常。五分之一(给予或接受)的点击没有响应,这对于用户而言可能非常烦人。这是我的代码:

contentPane = new JPanel();
contentPane.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {

            if (e.getButton() == MouseEvent.BUTTON3)
            {
                //Do Stuff
            }
        }
    });


你能帮我么

最佳答案

您不会从contentPane子组件获得点击。

我认为您的问题是您已在面板中添加了一些内容。当用户单击子组件所占据的区域时,该子组件将获得click事件。

快速修复:我建议您将相同的鼠标侦听器添加到所有子组件。
您不是在“点击”

单击是指按下鼠标并快速释放时。如果您不小心,则可能会收到(例如)“按下,移动,释放”而不是“单击”的事件。

快速解决:使用mouseReleased事件代替。

关于java - Java Swing中的MouseListener有时不响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11453240/

10-10 13:32