JAVA 2D Dessin ?

[Résolu/Fermé]
Signaler
Messages postés
95
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
10 juin 2015
-
Messages postés
95
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
10 juin 2015
-
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


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
814
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 avril 2020
115
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.
Messages postés
95
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
10 juin 2015
6
Merci bien :)