Почему методы setImage класса ImageView игнорируются, когда есть второй метод setImage под первым?

Я пытаюсь отобразить 2 изображения при щелчке мыши пользователем. Должно отображаться первое изображение, затем происходит пауза, а затем отображается второе изображение.

В конечном итоге я хочу, чтобы оба изображения отображались одно за другим на протяжении выполнения программы.

Я пытаюсь использовать цикл while, чтобы сначала отобразить изображение1, заснуть, отобразить изображение2, а затем вернуться к началу цикла.

Что в конечном итоге происходит при щелчке мыши, так это то, что цикл повторяется 4 раза с задержкой в ​​​​1 секунду на каждой итерации, и после того, как цикл завершается, второе изображение отображается только один раз, а первая строка кода отображения изображения полностью игнорируется. время.

Ожидаемый результат был следующим:

Цикл Начало итерации 1: отображение изображения 1, сон 1 секунда, отображение изображения 2, итерация 2: отображение изображения 1, сон 1 секунда, отображение изображения 2, итерация 3: отображение изображения 1, сон 1 секунда, отображение изображения 2, итерация 4: отображение изображения 1, сон 1 секунда, отображение изображения 2. Конец цикла

Что в итоге происходит:

Итерация начала цикла 1: итерация в течение 1 секунды 2: итерация в течение 1 секунды 3: итерация в течение 1 секунды 4: итерация в течение 1 секунды

            int x = 0;
            while (x < 4) {
                iView.setImage(image1);
                try {
                    Thread.sleep(1000);
                } catch (Exception e) {}
                iView.setImage(image2);
                x++;
            }

Любая помощь приветствуется. Спасибо


person Khris Davis    schedule 09.08.2020    source источник
comment
минимальный воспроизводимый пример, пожалуйста..   -  person kleopatra    schedule 10.08.2020
comment
не спите в потоке приложения FX, он обрабатывает все действия и обновления пользовательского интерфейса — не может делать это во сне. Для таких пауз используйте временные шкалы или другие потоки: stackoverflow.com /вопросы/9966136/   -  person Sergey Grinev    schedule 10.08.2020
comment
Спасибо @SergeyGrinev, который отлично решил мою проблему.   -  person Khris Davis    schedule 12.08.2020