2014-10-09 36 views
0

我想在我的JFrame的中心只显示一个字符串5秒。 我该怎么办?如何在Java中仅显示字符串几秒钟?

+0

Thread.sleep(5000);然后将文本设置为“”并刷新对话框。 – JustinKSU 2014-10-09 22:29:55

+2

@JustinKSU会冻结整个应用程序。这不是一个好主意。 – 2014-10-09 22:30:33

+0

@LuiggiMendoza好点。你可以在一个单独的线程中完成。 – JustinKSU 2014-10-09 22:42:19

回答

4
  1. JLabel添加到您的JFrame
  2. 设置JLabel的文字。
  3. 对于等待,请勿在创建UI元素时使用您所在的事件派发线程。改用Swing Timer:Swing Timer
  4. 当计时器激发时,将JLabel的文本设置为空字符串或完全删除它。
+0

谢谢,我编辑它。从技术上讲,它仍然是一个不同的线程,虽然你没有明确地创建它。来自javax.swing.Timer javadoc:“尽管所有计时器都使用一个共享线程(由执行的第一个Timer对象创建)执行其等待,但定时器的动作事件处理程序在另一个线程上执行 - 事件分派线程“ – 2014-10-09 22:36:21

+0

我同意,等待是在不同的线程中完成的,并且看不见,但我担心你的回答会让OP在后台线程中运行Timer。 – 2014-10-09 22:37:42

2

这是一个摆动问题,所以解决方案是使用摆动计时器而不是Thread.sleep(...)。如果你使用线程睡眠,你将会冒险睡觉Swing事件线程,使整个GUI进入睡眠状态,从而阻止显示任何新的文本。