Problème avec le contexte graphique associé à JPanel
Bonjour,
Je voudrais des éclaircissements sur le lien entre un objet d'une sous-classe de JPanel et l'objet Graphics qui lui est associé. Si j'ai bien compris (vous me corrigerez...) un objet de type Graphics est passé en paramètre à la méthode paintComponent à chaque fois qu'elle est appelée ? Mais est-ce le même objet à chaque fois. Je veux dire un objet Graphics qui évolurais au fil du temps ? J'en ai bien l'impression car quand l'objet graphics est modifié par la méthode scale par exemple, celui-ci perdure quand on appelle paintComponent une autre fois. Je me trompe ?
Mais alors... l'objet Graphics est comme une variable d'instance de l'objet JPanel, non ? Une variable d'instance cachée qui évolue au fil du temps, non ?
Si c'est le cas, quand cette variable est-elle instanciée ?
Je dis cela car, quand j'écris un truc du genre :
Code:
1 2 3 4
| public MonPanneau() {
super();
Graphics g = this.getGraphics();
} |
g est null. Pourtant la méthode getGraphics renvoie bien le contexte graphique associé au panneau, non ? Si null est renvoyé, c'est que le contexte grraphique n'existe pas encore ? Dans ce cas quand existe-t-il ?
Et si j'ai besoin du contexte graphique à ce moment-là comment je fais ?
Voilà un tas de question qui montrent que je n'ai pas tout saisi.
Pouvez-vous m'aider ?
Merci de prêter attention à mon problème.
Mon problème n'est pas là
Bonjour,
Merci d'avoir eu la patience de m'expliquer (n'est-ce pas nightwar...). Mais vous n'avez pas compris mon problème. Il s'agit justement de modifier durablement mon contexte graphique. Il ne s'agit pas de le conserver en annulant une modification faite à un moment. En effet, je l'utilise comme un repère du plan dans le quel je zoome ou bien je me déplace.
Donc je me demande plutôt pourquoi getGraphics me renvoie null quand je l'appelle. Il semblerait que ça dépende du moment où je l'appelle...
le contexte graphique se comporte-t-il comme une variable d'instance de la classe JPanel ?
Merci