2013-02-23 25 views
-1

我想添加一些額外的項目來了解gui接口。 我正在用java構建一個鬧鐘面板,我只是想在各種激活狀態期間改變文本,即從武裝到武裝並解除武裝。改變Jabel中的文本

我嘗試使用Thread.sleep方法,但這隻會延遲我的文本出現在屏幕上所需的時間。
你能否提醒我需要查找的方向?以下是我正在研究的一部分,但如果需要,我可以提供完整的代碼。

public void actionPerformed(ActionEvent e){ 
    else if(e.getSource() == disarm){ 
    dPanel.setBackground(Color.GREEN); 
    adPanel.setBackground(Color.GREEN); 
    screen.setText("Disarming"); 
    try { 
     Thread.sleep(5000); 
    } catch (InterruptedException e1) {           
     e1.printStackTrace(); 
     } 
screen.setText("Disarmed"); 
+0

我們不都開始學習親。這就是爲什麼我問一些有經驗的人的方向。 – user1761732 2013-02-23 21:37:50

回答

2

不要在Swing使用Thread.sleep不斷,它會阻止EDT —使用Swing Timer代替。

+0

很好。我從來沒有使用過線程,但我現在會研究定時器......感謝gd1也 – user1761732 2013-02-23 21:15:56

+0

不客氣:) – Reimeus 2013-02-23 21:16:42

+0

+1對於Swing Timer的建議(與另一個建議定時器的答案相反)。 – camickr 2013-02-23 21:25:32

0

問題是,用Thread.sleep()阻塞了GUI線程,並且你應該從來沒有那樣做。使用計時器。

-1

我不確定你想要做什麼。如果你確實需要一個計時器,請使用下面的一個: Swing Timer example

也許你可以嘗試以其他方式解釋你的問題,使它更容易理解。

+1

-1,Swing Timer的建議是在7分鐘前提出的。沒有必要混淆與重複的建議論壇。 – camickr 2013-02-23 21:24:26

+0

哦,對不起,你是對的!我應該開槍自殺!當然,由於我的錯,一隻小貓死了! XD – 2013-02-23 21:51:46