2011-08-13 6 views
0

ボタンをクリックして2秒後にボタンの色を変更しようとすると、GUIに問題が発生します。私がしたいのは、白い四角いボタンをクリックしてから、色が上がって2秒後に元の色(白)に戻したいのです。どのようにこれを達成することができる?JavaでGUIを使用したスレッド

クリックでマイコード:

cards[index].setBackground(cards[index].getTrueColor()); 
try 
{ 
    Thread.sleep(2000); 
    cards[cardPos.get(0)].setBackground(Color.white); 
} 
catch(Exception e) {} 

だから、これは白色に戻りますが、インスタンスで、秒に待機しません。 本当に少し助けていただきありがとうございます。 ありがとう!

+0

あなたが使用しているGUIフレームワークと言うする必要があります。それはスイング(デスクトップ)、Android(携帯電話)、GWT(ウェブサイト)ですか? – Jonas

答えて

3

これは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(); 
1

AndroidでAsynkTaskクラスを使用できます。 onPreExecuteメソッドを使用して最初のタスクを実行してから、2秒後にボタンの色を待つか変更することができます。これはdoInBackgroundメソッドで行うことができ、publish progressメソッドを呼び出して結果をUIにパブリッシュできます。 onPostExecuteメソッドを使用できます。

http://developer.android.com/reference/android/os/AsyncTask.html

関連する問題