2013-11-22 20 views
-1

這是我的代碼:錯誤與Thread.pause

private void jButton5MouseClicked(java.awt.event.MouseEvent evt) {          
    this.jButton5.setText("VietNam"); 
    try { 
     Thread.sleep(10000); 
    } catch (InterruptedException ex) { 
     Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    this.jButton5.setText("Ha Noi"); 
} 

我想要的按鈕顯示「越南」,並在一分鐘後,它會更改爲「河內」。 但是用我的代碼,我的Button沒有顯示任何內容,1分鐘後它顯示「Ha Noi」,沒有「越南」出現一秒鐘。

我該如何解決這個問題?我不想使用swing.Timer,因爲它不能完全暫停系統。如果有辦法解決它,請告訴我。

非常感謝你們。

回答

5

您已經在GUI線程上執行了Thread.sleep(),這阻止了它進一步更新GUI。

在GUI中調度未來動作的最方便的方法是使用javax.swing.Timer,這在Javadocs中可見。

+0

我明白了。在Timer運行時,我可以做任何事情來阻止其他按鈕工作嗎? –

+2

我想你應該通過調用適當的方法來禁用它們。 –

+0

非常感謝您的幫助:D –