鼠标按住不放在容器里面移动,会有画笔的效果,画出图案,请问高手这个程序该如何实现,我重写了鼠标监听器的MousePressed()方法,还是无法实现。

解决方案 »

  1.   

    楼主看下面这个程序能否帮到你!!import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    public class TestMouseMotionGeneric {
      public static void main(String args[]) {
        new MyFrame888("drawing...");
      }
    }class MyFrame888 extends Frame {
      ArrayList<Point> points = null;
      MyFrame888(String s) {
        super(s);
        points = new ArrayList<Point>(); 
        setLayout(null);
        setBounds(300,300,400,300); 
        this.setBackground(new Color(204,204,255));
        setVisible(true);
        this.addMouseMotionListener(new Monitor());
      } 
      public void paint(Graphics g) {
        Iterator<Point> i = points.iterator();
        while(i.hasNext()){
          Point p = i.next();
          g.setColor(Color.BLUE);
          g.fillOval(p.x,p.y,10,10);
        }
      }
      public void addPoint(Point p){
        points.add(p);
      }
    }
    class Monitor extends MouseMotionAdapter {
      private int num = 0;
      public void mouseMoved(MouseEvent e) {
        MyFrame888 f = (MyFrame888)e.getSource();
        f.addPoint(new Point(e.getX(),e.getY()));
        if(num++ >= 5){
          f.repaint();
          num=0;
        }
       }
    }