for (int i = 0; i < 2; i++) {
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}public void paint(Graphics g) {
...
}

解决方案 »

  1.   

    确切的说,只画了3次(包括初始化的1次),可能是两次绘制的图形一样,所以可能感觉没画
    可以在paint()中system.out...一行字符就可以确定画了几次了
      

  2.   

    在paint()中试过了,确实只画了一次:(
      

  3.   

    那只能说明因为发现没有Grahpics的变化,所以他自动不执行了.
      

  4.   

    呵呵
    不用调用repaint()
    直接调用paint()
      

  5.   

    在一个线程里多次调用repaint()的结果就是只执行一次,这个目的是为了减少不必要的重绘次数,以提高程序的执行效率。你可以看看Painting in AWT and Swing那篇文章。
    swing就是有些小Bug和一些细节问题,害的我花了不少时间才弄明白,有些Bug是版本问题,有些则至今仍旧存在。