Как перемешать цвет фона автоматически при нажатии кнопки? - PullRequest
1 голос
/ 20 мая 2019

Я пытаюсь перетасовать цвета фона на кадре при нажатии кнопки ... для этого я использовал метод 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);         
 }

Помогите мне выяснить, что не так в моем коде.

1 Ответ

2 голосов
/ 20 мая 2019

Вы также можете работать с таймером:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...