我试图在每个方法之间使用两次调用.fillrect方法并使用Thread.sleep调用来慢慢绘制一个矩形。发生的事情是在初始化矩形之前调用sleep方法,因此看起来rectange已经被绘制了。我只想画一部分矩形,暂停五秒钟然后画另一部分。
这是我的代码 -
public void paint(Graphics g, int w, int h) {
g.drawRect(0, 0, w - 1, h - 1);
g.fillRect(0, 0, 10, h-1);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
g.fillRect(0, 0, 50, h-1);
}
由于
答案 0 :(得分:1)
无论平台是什么,导致事件线程阻塞总是一个非常糟糕的想法。
您应该做的是在某处定义变量,以存储您想要绘制的区域的当前范围。在单独的线程上更新这些变量(您可以阻止该线程),并在更新变量时调用repaint()方法来安排重绘。