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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...