No está rompiendo nada si lo llama primero, pero es probable que deba volver a llamar si ha agregado algo. Else Swing no representará los componentes agregados. Es necesario que JVM llame al método paint(...)
de JFrame para que se procesen los componentes del JFrame, y setVisible(true)
le solicitará a la JVM que haga exactamente esto. Si alguna vez ha agregado componentes después de llamar a setVisible (verdadero) y no ve los componentes, encontrará que se "materializarán" si reajusta el tamaño del JFrame. Esto se debe a que el redimensionamiento hace que el sistema operativo solicite a Swing volver a pintar la GUI, y esto dará como resultado que se llame al paint(...)
.
Tenga en cuenta que si agrega un componente después de crear su GUI, puede llamar al revalidate()
y con frecuencia al repaint()
en su contenedor para obtener el nuevo componente distribuido correctamente y luego renderizado. El repaint()
será definitivamente necesario si el cambio en los componentes implica una eliminación, o si un componente se dibujó en otro componente que se visualizó previamente.
Una sugerencia libro que altamente recomiendo: Filthy Rich Clients comprar Guy y Haase. ¡Sólo comprarlo! No te arrepentirás de la compra.
¿Puedes poner una fuente donde dijeron eso? –
Desde un punto de vista visual, ver un componente que todavía tiene cosas nuevas agregadas parece descuidado (a menos que, por supuesto, este comportamiento sea esperado por el usuario). – Jeffrey