[JAVA][SWING] Différences entre paint, repaint, validate, update & updateUI
par
, 15/12/2020 à 16h17 (708 Affichages)
- Paint() doit être overridée si vous avez un composant personnalisé qui nécessite une fonctionnalité de dessin unique. Il n'est pas judicieux d'appeler cette fonction directement. Cette méthode contient des instructions pour peindre ce composant. En fait, dans Swing, vous devez overrider paintComponent () au lieu de paint (), car paint appelle paintBorder (), paintComponent () et paintChildren (). Vous ne devez pas appeler cette méthode directement, vous devez plutôt appeler repaint ().
- Repaint() doit être utilisé pour appeler le paint() associé au composant. La méthode exécute un nouveau thread qui contrôle le cycle update() -> paint() ce n'est pas fait séquentiellement. Cette méthode peut être surchargée. On appelle cette méthode lorsque l'on souhaite repeindre un composant. Pas dapaté cependant si les changements à repeindre sont un changement de dimensions. Notons que plusieurs appels à repaint() à la suite peuvent être fusionnés en un seul repaint() par le compilateur
- Update (), par défaut, appelle la méthode paint après avoir effacé tout le composant. Cette méthode est généralement surchargée pour éviter le scintillement (dû à l'effacement) pendant les animations. Encore une fois, vous devez appeler repaint () au lieu d'appeler cette méthode directement ... Sauf dans le cas cité ci-dessus.
- validate () - Ceci indique au composant de se repositionner et de se repeindre. Si vous avez fait quelque chose pour changer la taille du composant ou de l'un de ses enfants (ajouter, supprimer, redimensionner des enfants), vous devriez appeler cette méthode ... L'appel de revalidate () est préférable à l'appel de validate () dans Swing.