Here it is an example of Graphics2D program (using classes
geom)...

   import java.awt.*;
   import java.awt.event.*;
   import java.awt.geom.Area;
   import java.awt.geom.Ellipse2D;
   import java.awt.geom.GeneralPath;
   import javax.swing.*;
   import com.sun.j3d.utils.applet.MainFrame;


   public class Geom extends JApplet {
      int x = 50;
      Color couleurViolette = new Color(136, 0, 192);



      public void init() {
         Dessin dessin = new Dessin();
         getContentPane().add(dessin);
         addMouseListener(
                            new MouseAdapter() {

                               public void mousePressed(MouseEvent e) {
                                  x = x + 10;
                                  repaint();
                               }
                               public void mouseEntered(MouseEvent e) {
                                  x = x - 10;
                                  repaint();
                               }
                            });
      }


      public class Dessin extends JPanel {

         public Dessin() {
            setBackground(couleurViolette);
         }

         public void dessiner(int w, int h, Graphics2D g2) {
            Ellipse2D.Double cercle1 = new Ellipse2D.Double(100, 40, 100, 100);
            Ellipse2D.Double cercle2 = new Ellipse2D.Double(  x, 40, 100, 100);
            Ellipse2D.Double cercle3 = new Ellipse2D.Double( 75,  0, 100, 100);
            Area aire1 = new Area(cercle1);
            Area aire2 = new Area(cercle2);
            Area aire3 = new Area(cercle3);
            aire1.exclusiveOr(aire2);
            aire1.subtract(aire3);
            g2.setColor(Color.yellow);
            g2.fill(aire1);
            g2.draw(aire1);
         }

         public void paint(Graphics g) {
            Graphics2D g2 = (Graphics2D)g;
            Dimension dim = getSize();
            g2.setBackground(getBackground());
            g2.clearRect(0, 0, dim.width, dim.height);
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
RenderingHints.VALUE_ANTIALIAS_ON);
            dessiner(dim.width, dim.height, g2);
            Font police = new Font("SansSerif", Font.BOLD, 25);
            Graphics2D gtexte = (Graphics2D)g;
            gtexte.setFont(police);
            gtexte.setColor(Color.green);
            gtexte.drawString("Clickez sur la sourie pour d�placer le cercle vers la", 
1, 300);
            gtexte.drawString("droite et introduisez le curseur dans la fen�tre ", 2, 
325);
            gtexte.drawString("de l'applet pour faire avancer le cercle vers la 
gauche", 3, 350);
            gtexte.drawString("CLICK --> right / MOUSE ENTER --> left", 4, 400);
         }
      }
      public static void main(String[] args) {
         new MainFrame(new Geom(), 800, 600);
      }
   }

Reply via email to