Foros del Web » Programación para mayores de 30 ;) » Java »

como evitar que un JFrame se abra mas de una vez

Estas en el tema de como evitar que un JFrame se abra mas de una vez en el foro de Java en Foros del Web. saludos amigos tengo la siguiente cuestion: estoy realizando una aplicacion en netbenas ver. 7.3.1 tengo un menu generar, en el cual, al yo pulsar un ...
  #1 (permalink)  
Antiguo 24/08/2013, 09:21
 
Fecha de Ingreso: agosto-2013
Ubicación: d.f.
Mensajes: 38
Antigüedad: 9 años, 5 meses
Puntos: 0
Información como evitar que un JFrame se abra mas de una vez

saludos amigos tengo la siguiente cuestion:

estoy realizando una aplicacion en netbenas ver. 7.3.1 tengo un menu generar, en el cual, al yo pulsar un boton este me abre una ventana, mi problema esta en que si vuelvo a presionar ese mismo boton me abre de nuevo la ventana, yo quiero evitar esto pero no se como, segun entendi por lo que estube investigando esto se soluciona utilizando una de las opciones de eventos de las propiedades de la ventana creo que es esta:

Código Java:
Ver original
  1. java.awt.event.WindowListener

pero no entiendo como se utiliza tambien se que al implementar esto y si se intena abrir la ventana mas de una vez, el programa te puede mostrar un mensaje diciendote que ya has abierto la ventana.

¿podrian ayudarme por favor?
__________________
"benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y totalmente diferente..."
  #2 (permalink)  
Antiguo 24/08/2013, 13:35
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 9 años, 8 meses
Puntos: 9
Respuesta: como evitar que un JFrame se abra mas de una vez

Código Java:
Ver original
  1. if (rC != null) {//si existe una venta, la cierra.
  2.             rC.dispose();
  3.         }
  4.  
  5.         rC = new RegistrarCliente(); //crea la ventana y la muestra    
  6.         rC.setVisible(true);
  #3 (permalink)  
Antiguo 24/08/2013, 19:13
 
Fecha de Ingreso: agosto-2013
Ubicación: d.f.
Mensajes: 38
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: como evitar que un JFrame se abra mas de una vez

ya intente pornerlo pero no me da podrias explicarme el funcionamiento del codigo?
__________________
"benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y totalmente diferente..."
  #4 (permalink)  
Antiguo 24/08/2013, 21:13
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 9 años, 8 meses
Puntos: 9
Respuesta: como evitar que un JFrame se abra mas de una vez

AL presionar el botón vas a preguntar si la ventana ya se creo, si ese fuera el caso se va a cerrar la ventana abierta actualmente;

Luego creas una nueva ventana y la haces visible.

La variable rC se refiere a un objeto de la clase RegistrarCliente, la cual esta declarada como global en esta clase.
  #5 (permalink)  
Antiguo 25/08/2013, 08:10
 
Fecha de Ingreso: agosto-2013
Ubicación: d.f.
Mensajes: 38
Antigüedad: 9 años, 5 meses
Puntos: 0
De acuerdo Respuesta: como evitar que un JFrame se abra mas de una vez

ya veo jejeje lo intente pero no me quedo aun asi segui picandole al programa e investigando y pude resolverlo de la siguiente manera lo comparto con todos ustedes para que puedan aprender primero el codigo del boton con el cual yo abro el jframe:

Código Java:
Ver original
  1. public static boolean TstVentNvoPres=false;
  2.  
  3. private void cmdNvoPrestActionPerformed(java.awt.event.ActionEvent evt) {                                            
  4.        //asegura que solo se pueda abrir una vez la ventana al presionar
  5.        //el boton y si se presiona mas de una vez notifica con un mensaje que
  6.        //la ventana ya esta abierta
  7.            if(TstVentNvoPres==false){
  8.               NuevoPrestatario VentNvoPres=new NuevoPrestatario();
  9.               VentNvoPres.setVisible(true);
  10.               TstVentNvoPres=true;
  11.            }//termina if
  12.            else{
  13.               JOptionPane.showMessageDialog(null,"La ventana Nuevo Prestatario ya esta abierta!!!");
  14.            }//termina else
  15.     }

en este codigo utilizo una variable booleana como contro, para evitar que la ventana se abra varias veces cambiando su valor.

ahora el codigo del frame que abre el boton:

Código Java:
Ver original
  1. //metodo que al cerrar la ventana ejecuta el codigo contenido
  2.     //en el cuerpo
  3.     private void formWindowClosing(java.awt.event.WindowEvent evt) {                                  
  4.        //permite asignar un nuevo valor a la variable de control directamente
  5.        //sin necesidad de instanciar un objeto de la clase Menu
  6.        Menu.TstVentNvoPres=false;
  7.     }
  8.  
  9. picandole en las propiedades del frame en el netbeans coloque este m,etodo que segun entiendo al yo cerrar el frame ejecuta dicho codigoque en este caso es cambiar el valor directamente de la variable de control la cuals e encuentra en el jframe del menu jejej se puede hacer esto sin nesesidad de instanciar un objeto de dicho jframe ya que la variable de control es static o beuno asi lo entiendo yo y si estoy mal les pido que me corrijan.
  10.  
  11. ya con esto se resuelve dicho problema, bueno les doy las gracias por la ayuda brindada asi como a sus respuestas gracias amigos.
__________________
"benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y totalmente diferente..."

Etiquetas: jframe, programa, vez
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:04.