Bonjour,

lorsqu'on fait du dessin sur un composant comme un JPanel par exemple, on surcharge habituellement les:
  • paintComponent( Graphics G );
  • repaint( Rectangle r );

etc...

Dès que l'on veut faire du graphisme 'un peu' évolué, on utilise classiquement la bibliothèque Graphics2D, avec la classique ligne de code:
Et surtout, on n'oublie pas à la fin de la procédure:
Après observation du fonctionnement de mon application, je constate que paintComponent(), ou paint() peuvent être appelées des dizaines de fois d'affilée, au gré des évènements systèmes (re-dimensionnement de fenêtre, apparition / disparition, chevauchement de fenêtres...)

La question que je me pose est: quelle serait la meilleure solution entre:
  • Créer et maintenir un objet Graphics2D attaché au composant durant toute sa durée de vie ?
  • Ou créer un objet Graphics2D systématiquement à l'entrée d'une procédure graphique, puis libérer systématiquement ses ressources à la sortie ?

Cette seconde méthode a certainement un coût en gestion des ressources et en temps de traitement...
Par contre, on est sûr à chaque fois d'avoir un objet G2D adapté au contexte

La première solution permettrait probablement d'économiser du temps au système en évitant de réserver puis libérer de la ressource à chaque passage.
Par contre, est-ce que l'objet G2D serait toujours conforme au contexte graphique de l'objet...

J'avoue que je ne sais pas me décider sur le sujet.
Qu'en pensez-vous ?