2009-05-13 8 views

Répondre

4

revalidate() est fondamentalement un invalidate() suivi d'un validate().

Regardez le code source Java de Sun.

Vous souhaitez appeler revalidate().

+0

"fondamentalement" l'étire. Si vous faites un 'invalidate()' suivi d'un 'validate()', vous n'obtiendrez pas les mêmes résultats que 'revalidate()'. –

9

revalidate() serait mieux. revalidate() marque tout le conteneur jusqu'au niveau supérieur comme incorrect ou non valide. Ensuite, il appelle validate() au niveau supérieur. La méthode validate() du parent vérifie si au moins un de ses enfants immédiats est signalé invalide ou incorrect. il appelle la validation du parent. en appelant ainsi revalidate() signifie automatiquement en appelant validate().

4

Au moins dans Java 7, revalidate() n'efface pas nécessairement les composants supprimés de l'écran. Je crois que cela se produit lorsque la boîte englobante rétrécit. Pour ces cas, appelez repaint() après le revalidate().

Questions connexes