2014-10-09 70 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進入睡眠狀態,從而阻止顯示任何新的文本。