簡體   English   中英

Java - 使用帶有 GUI 的線程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM