我想使用特定时间一个接一个地绘制矩形数量。我使用 thread.sleep() 方法,但它直接停止线程工作而不是恢复。
问问题
630 次
6 回答
2
在工作线程上使用Thread.sleep(long millis)代替。
于 2012-10-10T08:41:44.813 回答
2
指定睡眠的毫秒数:
Thread.sleep(2000); // two seconds
请注意,您需要处理InterruptedException
.
于 2012-10-10T08:41:53.360 回答
2
您需要将睡眠放在另一个线程中。如果您将睡眠置于 GUI 线程中,则 GUI 将冻结。
编辑:我的错,将把它留在这里作为旁注评论。
于 2012-10-10T08:42:00.867 回答
1
你可以使用Timer
和TimeTask
类。
请参阅此示例。
于 2012-10-10T08:42:31.503 回答
0
看看java executors。这些可以运行固定的时间。然后,您可以在每个执行器单元内绘制一个矩形。(在EDT上)此API 文档顶部有一个有用的示例
于 2012-10-10T08:42:31.033 回答
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) {}
这将为您的绘图创建无限数量的线程。只需修改此循环。
有关线程,请参见此处。
于 2012-10-10T08:46:04.783 回答