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

399
30 августа 2017, 14:26

Есть кнопка, при нажатии на которую проигрывается звук и меняется цвет. Как заставить через время возвращать кнопку первоначальный цвет и добавить возможность много раз нажимать на кнопку?

    Number6.setOnAction(event -> {
        PSTriple.play(); // PSTriple - медиафайл
        Number6.setStyle("-fx-background-color: red");
        Number6.
    });
Answer 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 сек    
Answer 2

Я вот так делал. С использованием Thread

  1. В обработчик события добавляем строчку:

     laterRepaint(300);
    
  2. Далее сама функция:

    private void laterRepaint(int delay) {
        Thread thread = new Thread(() - {
           try {
              Thread.sleep(delay);
           } catch (InterruptedException e1) {
              e1.printStackTrace();
           }
           ... далее идут действия с кнопкой ...
        });
        thread.start();
    }
    
READ ALSO
Вставить текст в закладки MS Word

Вставить текст в закладки MS Word

Доброго времени суток! Есть шаблон Word(doc), его необходимо открыть и на место закладок, которые имеются в документе, вставить текст, после сохранить...

379
открыть картинку через jQuery

открыть картинку через jQuery

Приложение на java Spring, отображение на html+jQueryЕсть сущность для хранения в базе mySql

365
Постраничный вывод данных

Постраничный вывод данных

Добрый день, сделал простенькую пагинацию для своего проекта, хотел сделать чтобы выводилось хотя бы по 5 страниц (сделал это с помощью цыкла...

273
Выборка из таблиц со связью Many To Many

Выборка из таблиц со связью Many To Many

в БД PostgreSQL есть таблица Provider со строками id и nameТакже есть таблица Currencies с полями id и currency, и Countries с полями id и country

387