2010-07-09 166 views
1

我想創建一個按鈕,改變背景的顏色,然後從設置的時間後,從JFrame中刪除自己,而不是改變顏色它只是一直等待。改變顏色之前刪除按鈕

public void actionPerformed(ActionEvent e) { 
    setBackground(Color.red); 
    try{ 
     Thread.sleep(10000); 
    } 
    catch (InterruptedException iE) { 

    } 
    frame.remove(this); 
} 

任何人都可以看到我做錯了什麼?

回答

2

你的睡眠正在發生在主UI線程中,因此按鈕只是保持按下的原因。如果你想睡覺,你應該創建一個新的線程,讓它睡覺,然後從該線程內,你可以得到框架來刪除按鈕。

new Thread() { 
    public void run() { 
     try { 
      Thread.sleep(10000); 
      // Now do what is needed to remove the button. 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 

    }; 
}.start(); 
+0

謝謝你做的伎倆 – Kracobsen 2010-07-09 11:09:18