20/09/2012, 03:26
|
| Colaborador | | Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 3 meses Puntos: 454 | |
Respuesta: Problema al ejecutar Java. Hola:
Swing es un poco "puñetero". La solución rápida a tu problema es llamar a updateUI() cada vez que quites o añadas paneles. Depende de cómo tengas los componentes, prueba a llamar a updateUI() del panel/componente que acabas de añadir, o del panel/ventana que contiene al que acabas de añadir.
La explicación. Swing funciona bien si añades todos los componentes mientras no hay nada visible. La idea es que construyes totalmente la ventana y después la haces visible. Si en una ventana visible te decidas a añadir o quitar componentes, te pasa lo que te está pasando, que hasta que no redimensionas la ventana, no se hace efectivos los cambios.
Si en el arranque creas tu JFrame, lo haces visible y le añades componentes después todo seguido, el problema es que java lanza lo de hacer visible el JFrame en un hilo separado, por lo que mientras ese hilo hace el JFrame visible, a tí te da tiempo a añadir algunos componentes (quizás todos, quizás solo parte de ellos, según lo que tarde ese hilo separado). Eso hace que a veces te salga bien la ventana, a veces te salga mal. Para solucionar esto, construye toda la ventana antes de hacerla visible.
Se bueno. |