Java - Evitar abrir Jframe a abrir Jdialog

 
Vista:
Imágen de perfil de Karina
Val: 21
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Evitar abrir Jframe a abrir Jdialog

Publicado por Karina (9 intervenciones) el 03/08/2019 20:47:04
Hola, buen día.
Quisiera saber si alguien sabe cómo puedo evitar que, al abrir un JDialog desde un botón ubicado en Jframe, se abra otro Jframe.
mi Jframe se llama principal y llama al jdilog, pero al hacerlo en pantalla se ven 2 ventanas de la principal...
este es el código:
if(tablaPrestar.length()>0){

new prestar(this, true).setVisible(true);
}


Y se ve así:

Captura-de-pantalla-1
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Evitar abrir Jframe a abrir Jdialog

Publicado por Kabuto (1381 intervenciones) el 04/08/2019 00:50:37
Hola.
Pues no se por qué ocurre, aunque puedes probar una cosa.
Cuando invocas al JDialog, en su constructor, para el atributo en el que indicas cual es el "Frame padre" se lo dices con la palabra reservada this.

Prueba a no especificarle ningún frame padre, indícale simplemente null

1
2
3
4
if(tablaPrestar.length()>0){
 
new prestar(null, true).setVisible(true);
}

No estoy seguro de que tenga algo que ver, pero pruébalo, a ver que pasa.
Yo de hecho, siempre indico null cuando invoco a un JDialog
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Karina
Val: 21
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Evitar abrir Jframe a abrir Jdialog

Publicado por Karina (9 intervenciones) el 04/08/2019 02:42:47
¡Gracias!
Probé en una de mis ventanas y funciona, quise ver de todas formas por qué pasaba, y es porque estaba instanciando la clase principal en el jdialog para hacer uso de sus métodos... lo instanciaba de forma global, y si lo movía solamente al lugar donde iba llamar al método ya dejaba de mostrarse, por si a alguien le sucede lo que a mí...

Muchas 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