У меня есть 2 класса свинга, которые расширяют JFrame
. Оба имеют в конструкторе метод show ()
. Из ClassOne
я вызвал ClassTwo
как new ClassTwo ()
при нажатии кнопки. Но если я снова нажму кнопку, откроется новое окно для ClassTwo
. Итак, как я могу остановить открытие окна ClassTwo, если открыто одно окно ClassTwo?
Edit
теперь эта проблема решена, но теперь, когда я впервые открываю окно ClassTwo, отображается одно окно. Затем после его закрытия, когда я снова открываю окно ClassTwo, он открывает два окна, и этот счет продолжает увеличиваться. Почему это происходит?
РЕДАКТИРОВАТЬ 2
Я обнаружил, что это не проблема с качанием, а проблема из класса MultiUsreChat API Samck. Так что любой, кто работал над этим, помогите мне.
код в 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();
}
Edit 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);
}
}
});
}