ActionListener和Thread.sleep

时间:2013-08-10 18:15:08

标签: java swing jbutton actionlistener event-dispatch-thread

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

1 个答案:

答案 0 :(得分:4)

  

ActionListener和Thread.sleep ..

..不要一起玩。

不要阻止EDT(事件调度线程) - GUI将会冻结'当发生这种情况时而不是调用Thread.sleep(n)为重复任务实现Swing Timer或为长时间运行的任务实现SwingWorker。有关详细信息,请参阅Concurrency in Swing