我有一个带有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是一个单身人士。
编辑2 一些更多的信息。 我注意到在MAC OS上运行正常。该问题仅在Linux和Windows上发生。
答案 0 :(得分:1)
由于您的鼠标侦听器,必须发生这种情况。可能是在第一次点击时识别旧按钮,该按钮位于新按钮的相同位置(这只是我的猜测)。
将鼠标侦听器更改为动作侦听器。对于一个按钮,只要你有动作监听器就足够了。
试试这个。
答案 1 :(得分:0)
在改变生存能力时,请尝试在框架上调用revalidate()
。
编辑:
它可能是创建框架的东西。确保你在框架上调用'pack()`。