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

[SOLUCIONADO] JFrame "vacias" al ponerla visible

Estas en el tema de JFrame "vacias" al ponerla visible en el foro de Java en Foros del Web. Buenos dias. Tengo una aplicación con varios JFrame. Lo que hago es pasar de uno a otro cuando se eligen opciones y demás. El problema ...
  #1 (permalink)  
Antiguo 31/05/2013, 03:58
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 5 meses
Puntos: 2
JFrame "vacias" al ponerla visible

Buenos dias.

Tengo una aplicación con varios JFrame. Lo que hago es pasar de uno a otro cuando se eligen opciones y demás.

El problema viene al cargar el segundo JFrame en adelante. El primero se ve sin problemas pero el segundo y restantes, los pongo visible y todo eso, solo se ve el Marco de la ventana y lo de dentro está como "vacio", vamos, que está colgado, como esperando algo.

El código que tengo es algo así:

Código:
vista.ocultarMarcoInicial(); // Este JFrame aparece correctamente
vista.lanzarMarcoEspera();// Este JFrame y los que van a continuación aparecen "vacios"
¿Alguna idea de lo que puede suceder?

PD: Lo que he probado es que si el código de antes lo pongo al final del método, si que se ve bien la vista. Es algo así como que hasta que no se termina el método, no hace bien lo de la vista.

Última edición por jonasgv; 31/05/2013 a las 04:11
  #2 (permalink)  
Antiguo 31/05/2013, 06:12
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: JFrame "vacias" al ponerla visible

Hola:

Es raro que el primero se pinte y el segundo no, estando tan seguidos. Quizás debas revisar si estás haciendo algo distinto o si el segundo Frame y siguientes no tienen contenido ahí.

Si lo dejas así y dejas que el método termine.... ¿se acaba pintando o se queda así indefinidamente?. Si se acaba pintando el contenido, posiblemente estás bloqueando el hilo de pintado de java con el resto del método, deberías meter ese resto en un hilo separado.

Si minimizas y maximizas la ventana .. ¿se pinta bien?. Si después de visualizar un JFrame le metes el contenido (add(componentes)) ....estos componentes no se ven hasta que se obliga a refrescar la ventana ¿estás haciendo eso en el código que va detrás?. Si es así, cuando termines de meter todos los componentes, llama al método updateUI() de la ventana o su panel principal. No valen los métodos repaint(), update()....

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 31/05/2013, 07:17
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: JFrame "vacias" al ponerla visible

Buenas chuidiang.

Al primer JFrame MarcoInicial lo llamo desde el método A, termino este método A y se muestra correctamente.
Luego, cuando pulso un botón en el MarcoInicial, llamo a un método que lo que hace es ejecutarme el resto de mi programa y dentro de él, voy haciendo visible o no mas JFrames.

He hecho la prueba y si acabo el método que se inicializa después de pulsar el botón del MarcoInicial, si que se muestra correctamente el contenido de los JFrame.

¿Y cómo hago lo de los hilos para que se ejecuten con las ventanas? Es que tengo unos cuantos JFrame y tener un hilo por cada uno va a ser un poco caótico, ¿no?

No se si la única solución son los hilos o hay otra manera de hacerlo.

En cualquier caso, si puedes darme mas info, te lo agradeceré
  #4 (permalink)  
Antiguo 31/05/2013, 08:53
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: JFrame "vacias" al ponerla visible

No tienes que abrir hilos por cada ventana, tienes que abrir un solo hilo para hacer "el resto de mi programa".

De todas formas, te he comentado varias posibilidades, no sé si has mirado los "síntomas" que menciono ... El hilo es solución para una de las posibilidades, no para las otras.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: jframe, vacias, visible
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 21:48.