Как сделать изменение цвета label на пару секунд?
private void questionElement (String idElement){
String idElement2 = Integer.toString(a);
if (idElement.equals(idElement2))
{
qe.setStyle("-fx-background-color:#00FF00;");//qe - label - надо чтобы фон лейбл становился зелёным на пару секунд, сейчас он становится зелёным на 0,000001 сек , те нужна какая-то задержка на секунды 2
qe.setStyle("-fx-background-color:#FFEFD5;");//а затем менялся на первоначальный цвет
System.out.println("правильно");
generateQuestion ();
}
else
{System.out.println("неправильно");}
}
Ответы (1 шт):
Автор решения: Alex Krass
→ Ссылка
Обычно через таймеры и анимации, для примера можно к примеру через таймер AnimationTimer
class ChangeBackground extends AnimationTimer {
Date date;
@Override
public void handle(long l) {
if (new Date().getTime() - date.getTime() > 2000) {
qe.setStyle("-fx-background-color:#FFEFD5;");
System.out.println("правильно");
generateQuestion ();
this.stop();
}
}
@Override
public void start() {
this.date = new Date();
qe.setStyle("-fx-background-color:#00FF00;");
super.start();
}
}
protected void questionElement (String idElement) {
String idElement2 = Integer.toString(a);
if (idElement.equals(idElement2)) {
new ChangeBackground().start():
} else {
System.out.println("неправильно");
}
}