У меня есть JButton, который, как только я нажимаю на него, я хочу изменить некоторые цвета через несколько секунд, например, с синего -> 1 сек -> красный -> 1 сек - > желтый. Моя проблема в том, что, как только я использую функцию Thread.sleep в ActionListener, и я тестирую свою программу, она замерзает на 2 секунды и дает мне прямо желтый цвет. Как я могу это исправить? Большое спасибоActionListener и Thread.sleep
1
A
ответ
4
ActionListener и Thread.sleep ..
..don't хорошо играть вместе.
Не блокируйте EDT (Event Dispatch Thread) - графический интерфейс «замерзнет», когда это произойдет. Вместо того, чтобы звонить Thread.sleep(n)
, выполните Swing Timer
для повторения заданий или SwingWorker
для выполнения длительных задач. См. Concurrency in Swing для более подробной информации.