日期:2014-05-20  浏览次数:20648 次

问一个关于repaint()方法是怎么工作的?
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()方法是不是就是总是复制这条线啊!就是重新画一条这样的线啊

------解决方案--------------------
repaint()不是复制这条直线,它是使当前容器或窗口重画的方法。当你的窗口该变大小或被拖动时就会产生窗口重画消息。
------解决方案--------------------
程序调用repaint()方法重绘的时候,上一个动作画的图形将会被消除
然后再调用paint()方法
不是复制,是清除了后每次都重新画
------解决方案--------------------