我有这个带有不同屏幕的程序(由 JPanels 表示)。每次打开屏幕时,我都会重建该面板,并将其放在JFrame
.
现在,当我第一次构建面板(总是相同的功能)并按下一个按钮时,附加到它的代码将运行。当我重建屏幕时,它eventSource
永远不会等于实际的eventSource
.
见代码:
public class NewUserScreen extends JPanel implements MouseListener{
//SButton inherits from Component
SButton sb;
...
public void SetFields(){
removeAll();
revalidate();
repaint();
...
sb = new SButton(new Point(282, 295), "Save");
sb.addMouseListener(this);
add(sb);
...
}
...
@Override
public void mouseReleased(MouseEvent arg0) {
if(arg0.getSource().equals(sb)){
DBManager.addUser(...);
}else{
//So after the 2nd build, it will always run this code :(
ScreenManager.OpenAdminS();
}
}
}