我有一个JButton,一旦我点击它,我想在几秒后改变一些颜色,例如从蓝色 - > 1秒 - >红色 - > 1秒 - >黄色。我的问题是,只要我在ActionListener中使用Thread.sleep函数并测试我的程序,它会冻结2秒并直接给我黄色。我该如何解决这个问题?非常感谢
答案 0 :(得分:4)
ActionListener和Thread.sleep ..
..不要一起玩。
不要阻止EDT(事件调度线程) - GUI将会冻结'当发生这种情况时而不是调用Thread.sleep(n)
为重复任务实现Swing Timer
或为长时间运行的任务实现SwingWorker
。有关详细信息,请参阅Concurrency in Swing。