1

我有一个 JButton,只要单击它,我就想在几秒钟后更改一些颜色,例如从蓝色 -> 1 秒 -> 红色 -> 1 秒 -> 黄色。我的问题是,只要我在 ActionListener 中使用 Thread.sleep 函数并测试我的程序,它就会冻结 2 秒并直接给我黄色。我该如何解决?非常感谢

4

1 回答 1

4

ActionListener 和 Thread.sleep..

..不要一起玩。

不要阻塞 EDT(事件调度线程)——当这种情况发生时,GUI 将“冻结”。而不是调用实现重复任务Thread.sleep(n)的 Swing或长时间运行的任务。有关更多详细信息,请参阅Swing 中的并发。TimerSwingWorker

于 2013-08-10T18:28:52.607 回答