2011-08-13 15 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