Итак, я хочу изменить цвет кнопки на светло-зеленый, подождите 1 секунду, затем верните ее к значению по умолчанию. Как я могу это сделать? Я попробовал это так:
button1.setStyle("-fx-background-color: lightgreen");
try { Thread.sleep(1000); }
catch(InterruptedException e) {}
button1.setStyle("");
Но у меня есть 2 проблемы:
цвет никогда не становится светло-зеленым, только по умолчанию.
если я хочу изменить его только на светло-зеленый, он изменяется только после 1 секунды ожидания, а не до него.
Редактировать:
Итак, я дошел до того, чтобы использовать PauseTransition, но он не будет работать так, как я хочу.
for(int i=0; i<n; i++) {
int x = rand.nextInt(4) + 1;
switch(x) {
case 1: {
System.out.println("b1");
button1.setStyle("-fx-background-color: lightgreen; -fx-border-color: black;");
PauseTransition wait = newPauseTransition(Duration.seconds(1));
wait.setOnFinished(event -> {
button1.setStyle("");
});
wait.play();
}
break;
case 2: {
System.out.println("b2");
button2.setStyle("-fx-background-color: lightgreen; -fx-border-color: black;");
PauseTransition wait = new PauseTransition(Duration.seconds(1));
wait.setOnFinished(event -> {
button2.setStyle("");
});
wait.play();
}
break;
...
}
Теперь проблема в том, что while () не будет ждать, пока кнопка возвращается к значению по умолчанию и начинает новую итерацию.