import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;


public class MouseEventDemo extends Applet 
  implements MouseListener {
  BlankArea zoneSource;
  TextArea zoneTexte;
  final static String newline = System.getProperty("line.separator");
  
  public void init() {
    setLayout(new BorderLayout());
    
    zoneSource = new BlankArea(new Color(0.98f, 0.97f, 0.85f));
    add("Center", zoneSource);
    
    zoneTexte = new TextArea(5, 20);
    zoneTexte.setEditable(false);
    add("South", zoneTexte);
    
    // enregistrement comme recepteur des événements souris
    // de source zoneSource
    zoneSource.addMouseListener(this);
  }

  public void mousePressed(MouseEvent e) {
    zoneTexte.append("Mouse pressed");
    mouseDisplay(e);
  }
  
  public void mouseReleased(MouseEvent e) {
    zoneTexte.append("Mouse released");
    mouseDisplay(e);
  }
  
  public void mouseEntered(MouseEvent e) {
    zoneTexte.append("Mouse entered");
    mouseDisplay(e);
  }
  
  public void mouseExited(MouseEvent e) {
    zoneTexte.append("Mouse exited");
    mouseDisplay(e);
  }
  
  public void mouseClicked(MouseEvent e) {
    zoneTexte.append("Mouse clicked");
    mouseDisplay(e);
  }

  void mouseDisplay(MouseEvent e) {
    zoneTexte.append(", clics = " + e.getClickCount() 
		     + ", (x, y) = (" + e.getX() + ", " + e.getY() + ")"
		     + ", t = " + e.getWhen() + newline);
    zoneTexte.setCaretPosition(Integer.MAX_VALUE);
  }
}

