什么是Java的接口等效于Thread.sleep()?

时间:2014-01-24 21:44:55

标签: java eclipse multithreading interface thread-sleep

我正在编程一个机器人,它使用带有按钮和文本框的东西的接口,我知道如果你正在使用

Thread.sleep();

然后它会破坏你的界面。我知道

Thread.sleep();

几乎只是暂停当前的线程并在分配的时间后恢复它。我需要在我的程序中暂停一下而不会破坏我的界面,例如相当于

的界面
Thread.sleep(1000);

我已经找了好几个小时,在维护界面的同时,我找不到任何可以在程序的一个部分中稍微停顿的东西。我也不知道多线程,所以请尽可能详细地解释一下。在此先感谢帮助我!

1 个答案:

答案 0 :(得分:2)

Java Swing用户界面中的所有内容都在一个特殊的线程(Swing线程或“事件调度线程”)上运行。如果使用Thread.sleep()阻止此线程,则用户界面将停止响应。

为了能够在不阻塞用户界面的情况下睡眠(即故意延迟某些处理),您的程序可能需要在多个线程上运行。我建议你看看Java tutorial on this topic。多线程是一个相当高级的主题,无法用简短的答案进行总结。

目前尚不清楚您要使用sleep尝试实现的目标 - 如果您只是希望在将来触发某些操作,那么Timer课程可以满足您的需求,而无需额外的线程。

Java库中还有一些helper classes用于在GUI应用程序中的其他线程上运行任务。