java - ActionListener 和 Thread.sleep

标签 java swing jbutton actionlistener event-dispatch-thread

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

最佳答案

ActionListener and Thread.sleep..

..在一起玩得不好。

不要阻塞 EDT(事件调度线程)——当发生这种情况时,GUI 将“卡住”。不是调用 Thread.sleep(n) 而是实现一个 Swing Timer 用于重复任务或一个 SwingWorker 用于长时间运行的任务。参见 Concurrency in Swing了解更多详情。

关于java - ActionListener 和 Thread.sleep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18164944/

相关文章:

java - 尝试使用 Eclipse WindowBuilder,但 ActionLister 没有执行任何操作

java - 斯坦福核心 NLP : Entity type non deterministic

java - Java中从字符串中提取整数并将它们相加

java - 带有守护线程的 ExecutorService - 显式关闭

java - 在 JMenuItem 中的 Icon 和 Text 之间插入垂直分隔符

java - 设置 Jbutton 的背景

java - 如何在 BroadcastReceiver 中访问 MainActivity 的对象或方法?

java - 如何按顺序随机播放图像?

java - 有没有一种方法可以在 JOptionPane 内的一条语句中将字符串转换为 double 或 int ?

java - 如何让 Jbutton 填充 JPanel 以便按钮之间没有空格?