JAVA 2D Dessin ?

Résolu
isimienne Messages postés 124 Statut Membre -  
isimienne Messages postés 124 Statut Membre -
bonjour ,

je suis à la recherche d'un exemple de code qui permet de dessiner des simples formes en java 2D un peu comme "paint"

Merci d'avance

2 réponses

  1. danimo
     
    Salut,

    Voici un exemple mais qui ne fonctionne pas du tout comme "paint".

       import javax.swing.*;
       import java.awt.*;
       
       public class QuelquesFigures extends JFrame
       {
          private int x, y;
       
          private int w = 0;
         private int h = 0;
          
          private String num1 ="1";
          private String num2 ="2";
          private String num3 ="3";
          private String num4 ="4";
          private String num5 ="5";
          private String num6 ="6";
          private String num7 ="7";
          private String num8 ="8";
          private String num9 ="9";
          private String num10 ="10";
       
          private static Font font14;
       
          public QuelquesFigures()
          {
             super("DESSINS DE FIGURES DANS UN RECTANGLE."); // titre
          
             setSize(538, 248); // dimensions frame
             setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             setVisible(true);
          }
       
          public void paint(Graphics g)
          {
          
             super.paint(g);
          
             x = 0;
             y = 39;  // premiere ligne de la zone de dessin
          
          // Le rectangle dans lequel seront inscrits figures et/ou textes
             g.setColor(Color.green);
          // g.fillRoundRect(x +18, y, 502, 190); // sans angles arrondis
             g.fillRoundRect(x +18, y, 502, 190, 15, 15); // avec angles arrondis
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 1
          
             y = 39;
          
          // Dessiner un ovale plein en (x,y) (x +29, y+=18 soit: 29,57) et de dimensions (50,50).
          // dans ce cas l'ovale est un cercle (dim. 50X50)
             g.setColor(Color.blue);           // couleur de remplissage (fond)
             g.fillOval(x +29, y+=18, 50, 50); // remplissage (fill)
             g.setColor(Color.green);          // couleur du rectangle pour que ce soit (un peu) plus net
             g.drawOval(x +29, y, 50, 50);     // affichage, dessiner (draw)
             g.setFont(font14);
             g.setColor(Color.white);
             g.drawString(num1, x +51, y+=29);    // figure 1
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 2
          
             y = 39;
          
          // Dessiner un ovale plein en (x,y) (x +112, y+=3 soit: 112, 42) et de dimensions (100,60).
             g.setColor(Color.white);           // couleur de remplissage (fond)
             g.fillOval(x +112, y+=3, 100, 60); // remplissage (fill)
             g.setColor(Color.green);          //couleur du rectangle pour que ce soit (un peu) plus net
             g.drawOval(x +112, y, 100, 60);     // affichage, dessiner (draw)
             g.setFont(font14);
             g.setColor(Color.black);
             g.drawString(num2, x +156, y+=34);  // figure 2
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 3
          
             y = 39;
          
          // Dessiner un ovale plein en (x,y) (x +38, y+=77 soit: 38, 116) et de dimensions (30,90).
             g.setColor(Color.red);           // couleur de remplissage (fond)
             g.fillOval(x +38, y+=77, 30, 90); // remplissage (fill)
             g.setColor(Color.green);          //couleur du rectangle pour que ce soit (un peu) plus net
             g.drawOval(x +38, y, 30, 90);     // affichage, dessiner (draw)
             g.setFont(font14);
             g.setColor(Color.white);
             g.drawString(num3, x +51, y+=50);  // figure 3
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 4
          
             y = 39;
          
          // Dessiner un ovale vide en (x,y) (x +89, y+=77 soit: 89, 116) et de dimensions (30,90).
             g.setColor(Color.black);
             g.drawOval(x +89, y+=77, 30, 90);          // affichage, dessiner (draw)
             g.setFont(font14);
             g.drawString(num4, x +102, y+=50);    // figure 4
          
         // CODE DE L'AFFICHAGE DE LA FIGURE 5
          
             y = 39;
          
          // Dessiner un rectangle plein (4 point) et de dimensions (22,90).
             Polygon rectangle = new Polygon();
             rectangle.addPoint(x +148, y+=77);   // point haut gauche: x = 148, y = 116
             rectangle.addPoint(x +170, y);           // point haut droite: x = 170, y = 116
             rectangle.addPoint(x +170, y+=90);   // point bas droite: x = 170, y = 206
             rectangle.addPoint(x +148, y);           // point bas gauche: x = 148, y = 206
             g.setColor(Color.cyan);                      // fond du rectangle
             g.fillPolygon(rectangle);                     // remplissage
             g.drawPolygon(rectangle);                // affichage
             g.setFont(font14);
             g.setColor(Color.black);
             g.drawString(num5, x +156, y-=40);   // figure 5
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 6
          
             y = 39;
          
          // Dessiner un ovale plein en (x,y) (x +210, y+=69 soit: 210, 108) et de dimensions (150,100).
             g.setColor(Color.blue);           // couleur de remplissage (fond)
             g.fillOval(x +210, y+=69, 150, 100); // remplissage (fill)
             g.setColor(Color.green);          // couleur du rectangle pour que ce soit (un peu) plus net
             g.drawOval(x +210, y, 150, 100);     // affichage, dessiner (draw)
             g.setFont(font14);
             g.setColor(Color.white);
             g.drawString(num6, x +345, y+=55);  // figure 6
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 7
          
             y = 39;
          
          // Dessiner un ovale plein en (x,y) (x +210, y+=69 soit: 210, 108) et de dimensions (130,80).
             g.setColor(Color.red);           // couleur de remplissage (fond)
             g.fillOval(x +210, y+=69, 130, 80); // remplissage (fill)
             g.setColor(Color.blue);          // couleur de la figure 6 pour que ce soit (un peu) plus net
             g.drawOval(x +210, y, 130, 80);     // affichage, dessiner (draw)
             g.setFont(font14);
             g.setColor(Color.white);
             g.drawString(num7, x +326, y+=46);  // figure 7
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 8
          
             y = 39;
          
          // Dessiner un ovale plein en (x,y) (x +210, y+=69 soit: 210, 108) et de dimensions (110,60).
             g.setColor(Color.white);           // couleur de remplissage (fond)
             g.fillOval(x +210, y+=69, 110, 60); // remplissage (fill)
             g.setColor(Color.red);          // couleur de la figure 7 pour que ce soit (un peu) plus net
             g.drawOval(x +210, y, 110, 60);     // affichage, dessiner (draw)
             g.setFont(font14);
             g.setColor(Color.black);
             g.drawString(num8, x +306, y+=35);  // figure 8
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 9
          
             y = 39;
         
          // Dessiner un ovale plein en (x,y) (x +210, y+=69 soit: 210, 108) et de dimensions (93,44).
             g.setColor(Color.blue);           // couleur de remplissage (fond)
             g.fillOval(x +210, y+=69, 93, 44); // remplissage (fill)
             g.setColor(Color.white);          // couleur de la figure 8 pour que ce soit (un peu) plus net
             g.drawOval(x +210, y, 93, 44);     // affichage, dessiner (draw)
             g.setFont(font14);
             g.setColor(Color.white);
             g.drawString(num9, x +286, y+=26);  // figure 9
          
          // CODE DE L'AFFICHAGE DE LA FIGURE 10
          
             y = 39;
          
          // Dessiner un triangle plein (3points)
             Polygon triangle = new Polygon();
             triangle.addPoint(x +446, y+=51);      // point haut: x = 446, y = 90
             triangle.addPoint(x +496, y+=60);  // point bas droite: x = 496, y = 150
             triangle.addPoint(x +396, y);      // point bas gauche: x = 396, y = 150
             g.setColor(Color.orange);     // fond du triangle
             g.fillPolygon(triangle);      // remplissage
             g.drawPolygon(triangle);      // affichage
             g.setFont(font14);
             g.setColor(Color.black);
             g.drawString(num10, x +437, y-=18);   // figure 10
          
          }
       
          public static void main(String[] args)
          {
             font14 = new Font("Arial", Font.BOLD, 14);
             new QuelquesFigures();
          }
       }
    


    Cordialement,

    Dan
    1
  2. tarek_dotzero Messages postés 834 Statut Membre 122
     
    Bonjour,

    Vous avez un très bon exemple ci-dessus.

    Vous pouvez obtenir un entre en consultant les démos offerts avec la JDK, par exemple, sur ma machine:

    C:\Program Files\Java\jdk1.6.0_01\demo\jfc\Java2D

    Ce répertoire contient un exemple presque complet pour la Java 2D.

    Bon Courage.
    0
    1. isimienne Messages postés 124 Statut Membre 6
       
      Merci bien :)
      0