Я пытаюсь сделать JButton
пройти цветовой переход и поэтому я добавил слушатель действия к нему, что делает следующее:Цвет Переход на JButton
public void actionPerformed(ActionEvent arg0) {
Color c = new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
Color cc = v.get(1).getBackground();
//(...) The r, rr, b, bb, g, gg are just the components of the colors c and cc
boolean boo = true;
while(boo){
if(r < rr){
r++;
}
if(b < bb){
b++;
}
if(g < gg){
g++;
}
if(r == rr && b == bb && g == gg){
boo = false;
}
Color color = new Color(r, b, g);
v.get(1).setBackground(color);
v.get(0).setBackground(color);
frame.repaint();
frame.revalidate();
}
, но это не делает переход произойдет, это действительно просто изменяет цвет кнопки. Что мне здесь не хватает?
* «Что мне здесь не хватает?» * Не блокируйте EDT (Thread Dispatch Thread). Когда это произойдет, GUI «замерзнет». Подробнее см. [Параллелизм в Swing] (https://docs.oracle.com/javase/tutorial/uiswing/concurrency/) и исправление («Таймер»). –