Tengo 2 clases de oscilación que se extiende JFrame
. Ambos tienen el método show()
en el constructor. De ClassOne
llamé ClassTwo
como new ClassTwo()
en el botón haga clic en evento. Pero si presiono el botón de nuevo, se abre una nueva ventana para ClassTwo
. Entonces, ¿cómo puedo dejar de abrir la ventana de ClassTwo si se abre una ventana de ClassTwo?cómo detener la apertura de la ventana duplicada utilizando Smack API en swing?
Editar
ahora este problema se resuelve, pero ahora cuando ventana abierta ClassTwo primero que muestra una ventana. Luego, después de cerrarlo cuando abro de nuevo la ventana de ClassTwo, se abren dos ventanas y este conteo sigue aumentando. ¿Por qué está pasando esto?
EDITAR 2
me encontré con que no es problema, pero el swing de su problema de la clase MultiUsreChat de API Samck. Entonces, cualquiera que haya trabajado en eso me ayuda.
el código en ClassOne es:
if(!winList.contains(room_jid)){
new ClassTwo(room_jid,....);
winList.add(room_jid);
}
y en ClassTwo es:
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();
}
Editar 3
constructor de 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);
}
}
});
}
@Kdansky: Esta solución no es útil para mí porque quiero abrir múltiples ventanas de ClassTwo al mismo tiempo. Así que tengo que crear una nueva instancia cada vez que hago clic en el botón. –
Usted escribió "Entonces, ¿cómo puedo detener la apertura de la ventana de ClassTwo si se abre una ventana de ClassTwo?". Por favor aclara –
@Kdansky: Fue mi pregunta la que se resolvió, pero la siguiente pregunta es si está abriendo ventanas previamente cerradas. ver mi 'Editar'. –