import javax.swing.JApplet;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Vector;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
abstract class Forme
{
Color couleur=Color.blue;
abstract void dessiner(Graphics g);
}
class Cercle extends Forme
{
Point centre;
int rayon;
void dessiner(Graphics g)
{
g.setColor(couleur);
g.drawOval(centre.x-rayon,centre.y-rayon,2*rayon,2*rayon);
}
Cercle(int x,int y,int _rayon)
{
centre=new Point(x,y);
rayon=_rayon;
}
}
class Carre extends Forme
{
Point coin;
int largeur;
void dessiner(Graphics g)
{
g.setColor(couleur);
g.drawRect(coin.x,coin.y,largeur,largeur);
}
Carre(int x,int y,int _largeur)
{
coin=new Point(x,y);
largeur=_largeur;
}
}
public class DessinFormes extends JApplet implements MouseListener, KeyListener
{
Vector formes=new Vector();
int taille=10;
public void init()
{
System.out.println("Bonjour, je m'initialise");
requestFocus();
addKeyListener(this);
addMouseListener(this);
}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e)
{
switch(e.getKeyChar())
{
case '+': taille++;break;
case '-': taille--;break;
}
}
public void mouseEntered (MouseEvent e) {}
public void mouseExited (MouseEvent e) {}
public void mousePressed (MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseClicked (MouseEvent e)
{
System.out.println("Position:" + e.getX() + "," + e.getY());
switch((int)(Math.random()*2))
{
case 0:
formes.add(new Cercle(e.getX(),e.getY(),taille));
break;
case 1:
formes.add(new Carre(e.getX(),e.getY(),taille));
break;
}
repaint();
}
public void paint (Graphics g)
{
g.clearRect(0,0,getWidth(),getHeight());
g.drawString ("Bonjour", 50, 25);
for(int i=0;i<formes.size();i++)
{
((Forme)formes.get(i)).dessiner(g);
}
requestFocus();
}
}