Есть кнопка, при нажатии на которую проигрывается звук и меняется цвет. Как заставить через время возвращать кнопку первоначальный цвет и добавить возможность много раз нажимать на кнопку?
Number6.setOnAction(event -> {
PSTriple.play(); // PSTriple - медиафайл
Number6.setStyle("-fx-background-color: red");
Number6.
});
Запустите таймер, по истечении которого верните кнопку в нужное состояние:
private static void returnButtonState(final Button button, long delay) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//логика с кнопкой
timer.cancel();
}
}, delay, 1000);
}
Пример вызова:
Number6.setOnAction(event -> {
PSTriple.play(); // PSTriple - медиафайл
Number6.setStyle("-fx-background-color: red");
returnButtonState(Number6, 3*1000); //вызовется 1 раз через 3 сек
Я вот так делал. С использованием Thread
В обработчик события добавляем строчку:
laterRepaint(300);
Далее сама функция:
private void laterRepaint(int delay) {
Thread thread = new Thread(() - {
try {
Thread.sleep(delay);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
... далее идут действия с кнопкой ...
});
thread.start();
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей