我试图在单击按钮时改写框架上的背景色。为此,我已经使用过3次setBackground()
方法,但是问题是..它仅显示第三个setBackground()
中指定的颜色,而忽略了前两个setBackground()
颜色。
if(s.equals("Click here")) {
this.setBackground(Color.yellow);
try
{
Thread.sleep(2000);
}
catch(InterruptedException ie)
{}
this.setBackground(Color.cyan);
try
{
Thread.sleep(2000);
}
catch (InterruptedException ie)
{ }
this.setBackground(Color.red);
}
帮助我找出代码中的错误。
最佳答案
您也可以使用Timer:
if(s.equals("Click here")) {
Timer t = new Timer();
Colors colors = new Colors[3] ;
colors[0] = Color.yellow;
colors[1] = Color.cyan;
colors[2] = Color.red;
int i = 0 ;
t.scheduleAtFixedRate(
new TimerTask()
{
public void run()
{
this.setBackground(colors[i]);
i++ ;
if(i==3)
{
t.cancel() ;
}
}
},
0,
2000);
}