Страницы

Поиск по вопросам

суббота, 15 февраля 2020 г.

Повтор обработки событий в Java

#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(); }

Комментариев нет:

Отправить комментарий