/* Une petite Applet qui dessine des maisons C'est très joli pour les enfants... */ import java.awt.*; import java.applet.Applet; import java.awt.event.*; public class MaisonApplet extends Applet implements MouseListener, ActionListener { final static int BIG_WIDTH = 100; final static int BIG_HEIGHT = 40; final static int SMALL_WIDTH = 40; final static int SMALL_HEIGHT = 20; int larg=SMALL_WIDTH; int haut=SMALL_HEIGHT; int couleur = 0; // la couleur initiale public void init() { this.addMouseListener(this); setLayout(new BorderLayout()); Panel p = new Panel(); add(p,"North"); Button b1 = new Button("Grand"); Button b2 = new Button("Petit"); Button b3 = new Button("Couleur"); p.add(b1); p.add(b2); p.add(b3); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); } void dessinerMaison(int x, int y, int h, int l) { Graphics g=getGraphics(); g.setColor(getColor(couleur)); g.drawRect(x,y,l,h); g.drawLine(x,y,x+l/2,y-h/2); g.drawLine(x+l/2,y-h/2,x+l,y); g.fillRect(x+3*l/8,y+h/2,l/4,h/2); } /** pour changer les couleurs */ Color getColor(int c) { switch(c) { case 0: return(Color.black); case 1: return(Color.blue); case 2: return(Color.cyan); case 3: return(Color.darkGray); case 4: return(Color.red); case 5: return(Color.green); case 6: return(Color.lightGray); case 7: return(Color.magenta); case 8: return(Color.orange); case 9: return(Color.gray); case 10: return(Color.pink); case 11: return(Color.yellow); default : return(Color.black); } } // la gestion des événements public void mousePressed(MouseEvent e) { System.out.println("click: " + e.getX() + ", " + e.getY()); dessinerMaison(e.getX(),e.getY(),haut,larg); } public void actionPerformed(ActionEvent e) { String c = e.getActionCommand(); if (c.equals("Grand")) { larg=BIG_WIDTH; haut=BIG_HEIGHT; } else if (c.equals("Petit")) { larg=SMALL_WIDTH; haut=SMALL_HEIGHT; } else if (c.equals("Couleur")) { couleur=(couleur+1) % 12; } } // ceux qui ne servent à rien mais qui sont // définis dans MouseListener. // on les implémente pour qu'ils ne fassent rien! public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e) {} public void mouseReleased(MouseEvent e){} }