#java #javafx
Есть кнопка, при нажатии на которую проигрывается звук и меняется цвет. Как заставить через время возвращать кнопку первоначальный цвет и добавить возможность много раз нажимать на кнопку? Number6.setOnAction(event -> { PSTriple.play(); // PSTriple - медиафайл Number6.setStyle("-fx-background-color: red"); Number6. });
Ответы
Ответ 1
Запустите таймер, по истечении которого верните кнопку в нужное состояние: 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 секОтвет 2
Я вот так делал. С использованием Thread В обработчик события добавляем строчку: laterRepaint(300); Далее сама функция: private void laterRepaint(int delay) { Thread thread = new Thread(() - { try { Thread.sleep(delay); } catch (InterruptedException e1) { e1.printStackTrace(); } ... далее идут действия с кнопкой ... }); thread.start(); }
Комментариев нет:
Отправить комментарий