Dessin problème de compréhension (Graphics2D, BufferedImage, etc.)
Hello,
Je suis en plein développement d'une application de dessin et j'ai quelques problèmes de conpréhension, je serais heureux si qqn pouvais m aider ou me donner un bon site. J'en ai trouvé plusieurs mais rien qui m'a convaincu...bref.
J'ai une classe extends JPanel sur laquelle je veux dessiner. J'ai crée une bufferedImage:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| public void paintComponent(Graphics g){
// Appel de la méthode paintComponent de la classe mère, cette méthode redéfinit la zone de dessin et l'efface
super.paintComponent(g);
// Conversion en un contexte 2D
Graphics2D g2 = (Graphics2D)g;
//Initialisation de l'image bufferisée si elle n'existe pas encore
if (bufImage == null){
int w = getWidth();
int h = getHeight();
bufImage = (BufferedImage)createImage(w, h);
Graphics2D gc = bufImage.createGraphics();
gc.setColor(COULEUR_FOND);
gc.fillRect(0, 0, w, h);
}
g2.drawImage(bufImage, null, 0, 0);
dessiner(g2);
}
/** Méthode permettant de dessiner sur l'image bufferisée
*
* @param g2 Graphics
*/
public void dessiner(Graphics g2){
g2.setColor(COULEUR_TRACE);
switch (toolsActive){
case Constantes.CRAYON:
...
break;
case Constantes.RECTANGLE:
...
break;
case Constantes.LIGNE:
}
} |
Ce que je comprend mal, c'est dans la méthode paintComponent() quand j'ai définit l'objet bufImage et que je l'ai appliquée au contexte de mon JPanel (g2.drawImage), ensuite l'envoie le contexte à la méthode dessiner()... A ce moment là lorsque je dessine, c'est sur l'image bufferisée ou sur le JPanel?
Comment se fait-il que si je n'utilise pas d'image bufferisée je n'arrive pas à dessiner plusieurs formes successivement?
Merci de m'aider... :oops: