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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part g2D = (Graphics2D)G;
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...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part g2D.dispose();
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 ?
Partager