我试图在单击按钮时改写框架上的背景色。为此,我已经使用过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);
}

10-06 14:05