如何延迟java编程?

时间:2012-10-10 08:40:34

标签: java multithreading

我想使用特定时间一个接一个地绘制矩形的数量。 我使用thread.sleep()方法,但它直接停止线程的工作,而不是恢复。

6 个答案:

答案 0 :(得分:2)

在工作线程上使用Thread.sleep(long millis)

答案 1 :(得分:2)

指定睡眠时的毫秒数:

Thread.sleep(2000); // two seconds

请注意,您需要处理InterruptedException

答案 2 :(得分:2)

你需要把睡眠放在另一个线程中。如果将睡眠放在GUI线程中,GUI将冻结。

编辑:我的不好,将此作为旁注注释留在此处。

答案 3 :(得分:1)

您可以使用TimerTimeTask类。

请参阅此example

答案 4 :(得分:0)

查看java executors。这些可以运行一段固定的时间。在每个执行器单元内,您可以绘制一个矩形。 (在EDTThis API文档顶部有一个有用的示例

答案 5 :(得分:0)

您应该在单独的thread中实例化每个绘图。为每个睡眠循环创建单独的thread

这样,您可以将looping的线程与drawing的线程分开。因此,删除冻结

public class RunTest implements Runnable{

    @Override
    public void run() {
        // codes for drawing
    }

}

在你的主要:

   try {
      while (true) {
        Thread t = new Thread(new RunTest());
        t.start();
      }
    } catch (InterruptedException iex) {}

这将为您绘制一个无限数量的线程。只需修改此循环。

请参阅此处查看threads