2009-05-13 13 views

Respuesta

4

revalidate() es básicamente un invalidate() seguido de un validate().

Mire el código fuente Java de Sun.

Quiere llamar al revalidate().

+0

"básicamente" es estirarlo. Si haces un 'invalidate()' seguido por un 'validate()', no obtendrás los mismos resultados que 'revalidate()'. –

9

revalidate() sería mejor. revalidate() marca todo el contenedor hasta el nivel superior como no apropiado o no válido. Luego llama a validate() en el nivel superior. El método validate() del padre verifica si al menos uno de sus hijos inmediatos se señala como no válido o incorrecto. llama a validate del padre. llamando a revalidate() significa automáticamente llamando a validate().

4

Al menos en Java 7, revalidate() no necesariamente "borra" los componentes eliminados de la pantalla. Creo que eso sucede cuando el cuadro delimitador se reduce. Para estos casos, llame al repaint() después del revalidate().

Cuestiones relacionadas