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);
}
}