public void add(int dx,int dy)
{
Point2D end=new Point2D.Double(last.getX()+dx,last.getY()+dy);
Line2D line=new Line2D.Double(last,end);
lines.add(line);
repaint();
last=end;
}里面有一个repaint()方法,我不清楚他准确的工作方式,在他前面画了一条直线,调用repaint()方法是不是就是总是复制这条线啊!就是重新画一条这样的线啊

解决方案 »

  1.   

    repaint()不是复制这条直线,它是使当前容器或窗口重画的方法。当你的窗口该变大小或被拖动时就会产生窗口重画消息。
      

  2.   

    程序调用repaint()方法重绘的时候,上一个动作画的图形将会被消除
    然后再调用paint()方法
    不是复制,是清除了后每次都重新画
      

  3.   

    是清除了每次都重新画,但是我上面画的那条线怎么没有被清除啊。他是一个接一个的,是不是说把方法都消除了然后重新执行这个方法呀.就是说执行到repaint()方法的时候就停止了然后又重新回到Point2D end.....那儿了?