我有一个带有4个按钮的Java面板。当我单击这些按钮时,将出现一个新框架,并且第一个框架被setVisibile(false)隐藏。
在该新窗口上,我还有另一个按钮,但是当我单击它时,我得到了与第一个窗口的第四个按钮相对应的事件。再次单击该按钮可达到目的,但这当然是不可接受的。
我想念什么吗?我只是展示框架

nameOfTheFrame.setVisible(true);


我在每个按钮上都有MouseListeners。

最后一个按钮的代码很简单:

System.exit(0);


编辑

样例代码:

    private void btn_joinGamePressed(java.awt.event.MouseEvent evt) {
            GraphicsTools.getInstance().getCreateGame().setVisible(false);
            GraphicsTools.getInstance().getMainPanel().setVisible(false);
            GraphicsTools.getInstance().getRegistration().setVisible(true);
}


GraphicsTools是一个Singleton。

编辑2
一些更多的信息。
我注意到在MAC OS上工作正常。该问题仅在Linux和Windows上发生。

最佳答案

这一定是由于您的鼠标侦听器而发生的。可能是因为您在第一次点击中识别了旧按钮,而该按钮与新按钮位于同一位置(这只是我的猜测)。

将鼠标侦听器更改为动作侦听器。对于一个按钮,如果您有动作侦听器就足够了。

尝试这个。

10-05 17:56