import java.awt.Color;

  import java.awt.Frame;

  import java.awt.Graphics;

  import java.awt.Point;

  import java.awt.event.MouseAdapter;

  import java.awt.event.MouseEvent;

  import java.awt.event.MouseListener;

  import java.util.ArrayList;

  import java.util.Iterator;

  public class MyMouseAdapter {

  public static void main(String[] args) {

  new MyFrame5("drawing");

  }

  }

  class MyFrame5 extends Frame{

  ArrayList points=null;

  MyFrame5(String s){

  super(s);

  points=new ArrayList();

  setLayout(null);

  setBounds(300,300,400,300);

  this.setBackground(new Color(204,204,255));

  setVisible(true);

  this.addMouseListener(new Monitor5());

  }

  public void paint(Graphics g){

  Iterator i=points.iterator();

  while(i.hasNext()){

  Point p=(Point)i.next();

  g.setColor(Color.blue);

  g.fillOval(p.x,p.y, 10, 10);

  }

  }

  public void addPoint(Point p){

  points.add(p);

  }

  }

  class Monitor5 extends MouseAdapter{ //MouseAdapter实现了MouseListener接口

  public void mousePressed(MouseEvent e){

  MyFrame5 f=(MyFrame5)e.getSource();

  f.addPoint(new Point(e.getX(),e.getY()));

  f.repaint(); //让Frame强制经行重画

  }

  }