Java - Controlar la apertura de un Frame

 
Vista:

Controlar la apertura de un Frame

Publicado por nomada (11 intervenciones) el 08/02/2001 13:57:30
Buenas.
Como puedo controlar que no se vuelva a abrir un Frame (awt) si ya está abierto?
He probado poniendo una condición

if (!Formulario.isShowing())
--- hacer otra instancia del mismo
else --- ya está abierto ----

pero me contesta que no está abierto, y por tanto lo vuelve a abrir.
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Controlar la apertura de un Frame

Publicado por Xavi Canal (241 intervenciones) el 08/02/2001 20:12:28
Nas,

debe ser pq está abierto pero no se está
visualizando

if (formulario != null)
// Está abierto
else
formulario = new Frame ();

att. Xavi Canal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Controlar la apertura de un Frame

Publicado por nomada (11 intervenciones) el 09/02/2001 13:35:58
El problema es que la pregunta formulario==null la tienes que hacer sobre una instancia del frame.
Ejemplo:
MiTipoFrame miFrame= new MiTipoFrame()
Yo no puedo preguntar if (MiTipoFrame==null) tengo que preguntar if(miFrame==null) y, logicamente me dirá que no porque acabo de instanciarlo.
La pregunta sería ¿Como sé si existe una instancia de una clase ejecutándose?
No sé si me he explicado bien, pero creo que esa es la cuestion.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Controlar la apertura de un Frame

Publicado por Luli (27 intervenciones) el 12/02/2001 11:18:05
Se me ocurre que quizá te serviría una variable estática.

Por ejemplo en una clase llamada MiClase:

public static boolean instanciaActiva = false;

y en el main:

public static void main(String args[]){
if(!MiClase.instanciaActiva){
new MiClase(args).show();
MiClase.instanciaActiva = true;
}

}

Quizá no es muy elegante, pero debe funcionar.

Suerte!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar