import java.awt.*; import java.awt.event.*; import java.applet.*; // on peut ici utiliser MonCanvas vu avant // mais c est pour avoir tout dans un meme // fichier class MonCanvas2 extends Canvas implements ActionListener { private int x=-10,y=-10; private Image image; // constructeur juste pour creer l'image public MonCanvas2() { //image = Toolkit.getDefaultToolkit().getImage("construction.gif"); } public void update(Graphics g) { paint(g); } // pour eviter l'effacement public void paint(Graphics g) { g.fillOval(x,y,7,7); } public void actionPerformed (ActionEvent e) { // dans tous les cas, on efface la zone d'affichage getGraphics().clearRect(0,0,getWidth(),getHeight()); if (e.getActionCommand().equals("logo")) { System.out.println("logo"); //getGraphics().drawImage(image,50,50,this); } } public void repaint(int x, int y) { this.x = x; this.y = y; repaint(); } } public class AppletExemple extends Applet { private int xValue,yValue; // discussion constructeur / init public AppletExemple() { System.out.println("Constructeur"); } public void init() { System.out.println("init"); setLayout(new BorderLayout()); Button top = new Button("top"); Button west = new Button("logo"); Button east = new Button("east"); Button south = new Button("efface"); final MonCanvas2 center = new MonCanvas2(); // gestion du deplacement de la souris center.addMouseMotionListener( new MouseMotionAdapter() { public void mouseDragged (MouseEvent e) { xValue = e.getX(); yValue = e.getY(); center.repaint(xValue,yValue); } } ); center.setBackground(Color.yellow); // que faire lorsque l'on clique sur efface ou logo south.addActionListener(center); west.addActionListener(center); add(top,BorderLayout.NORTH); add(west,BorderLayout.WEST); add(east,BorderLayout.EAST); add(south,BorderLayout.SOUTH); add(center,BorderLayout.CENTER); show(); } }