我有 2 个摇摆班,它们扩展了JFrame
. 两者都有show()
构造函数中的方法。从我ClassOne
打电话给按钮点击事件。但是,如果我再次按下按钮,则会打开新窗口。那么,如果打开了一个 ClassTwo 窗口,我该如何停止打开 ClassTwo 窗口呢?ClassTwo
new ClassTwo()
ClassTwo
编辑
现在这个问题已经解决了,但是现在当我第一次打开 ClassTwo 窗口时,它会显示一个窗口。然后在我再次打开 ClassTwo 窗口时关闭它后,它会打开两个窗口,并且这个计数继续增加。为什么会这样?
编辑 2
我发现它不是摆动问题,而是来自 Samck API 的 MultiUsreChat 类的问题。所以任何参与过它的人都会帮助我。
ClassOne 中的代码是:
if(!winList.contains(room_jid)){
new ClassTwo(room_jid,....);
winList.add(room_jid);
}
在 ClassTwo 中是:
public ClassTwo(....){
......
this.muc = new MultiUserChat(connection, room_jid);
if(!muc.isJoined())
muc.join(this.user_id); //---- This line opens previously closed window.
.....
if(!isVisible())
show();
}
编辑 3
classone 的构造函数
public ClassOne(){
JButton btn = new JButton("Open");
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(!winList.contains(room_jid)){
new ClassTwo(room_jid,....);
winList.add(room_jid);
}
}
});
}