[英]Java - using thread with GUI
當我在單擊按鈕 2 秒后嘗試更改按鈕的顏色時,我的 GUI 出現問題。 我想要做的是單擊一個白色方形按鈕,然后出現一種顏色,2 秒后我希望它恢復到原來的顏色(白色)。 怎樣才能做到這一點?
我的點擊代碼:
cards[index].setBackground(cards[index].getTrueColor());
try
{
Thread.sleep(2000);
cards[cardPos.get(0)].setBackground(Color.white);
}
catch(Exception e) {}
所以這又回到了白色,但在一個實例中,不會等到幾秒鍾。 真的很感謝這里的一點幫助。 謝謝!
這需要一個Timer
而不是Thread.sleep
。 您需要將計時器設置為延遲 2 秒,然后讓它重置按鈕的顏色。 例如,在 Swing 中:
// onButtonClick
final Card card = cards[index];
card.setBackground(card.getTrueColor());
new Timer(2000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Change color back
card.setBackground(Color.WHITE);
}
}).start();
您可以在 Android 中使用 AsynkTask class。 可以使用 onPreExecute 方法執行初始任務,然后等待 2 秒后更改按鈕顏色,這可以在 doInBackground 方法中完成,您可以通過調用發布進度方法將結果發布到 UI,最后您可以使用 onPostExecute 方法。
http://developer.android.com/reference/android/os/AsyncTask.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.