2

我试图使用 .fillrect 方法的两次调用和每个方法之间的 Thread.sleep 调用来慢慢绘制一个矩形。发生的事情是在初始化矩形之前调用了 sleep 方法,因此看起来矩形已经被绘制了。我只想画矩形的一部分,暂停五秒钟,然后画另一部分。

这是我的代码 -

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);
 }

谢谢

4

1 回答 1

1

不管是什么平台,导致事件线程阻塞总是一个非常糟糕的想法。

您应该做的是在某处定义变量,以存储您要绘制的区域的当前范围。在单独的线程上更新这些变量(您可以根据需要阻止该线程)并在更新变量时调用 repaint() 方法来安排重绘。

于 2011-01-25T17:32:59.640 回答