当前位置:  开发笔记 > 编程语言 > 正文

ExecutorService与Swing Timer

如何解决《ExecutorService与SwingTimer》经验,为你挑选了2个好方法。

我最近一直在阅读Filthy Rich Clients并注意到,尽管Java的版本是6,但没有提到Concurrent Framework.所以,他们谈论java.util.Timer和javax.swing.Timer,而不是关于ExecutorService.

我在" Java Timer vs ExecutorService " 的问题中读到了ExecutorService的优点,并决定将后者用于前者.但是这本书讨论了javax.swing.Timer,它具有特定于Swing开发的优点.

那么,这是否意味着,对于Swing开发(动画按钮等),javax.swing.Timer仍然是一个更好的选择,还是在新的Concurrent Framework中有一个替代它的相关类?



1> willcodejava..:

Swing Timer至少在EDT上运行,所以你不必通过调用invokeLater来包装所有东西.它还与Swing很好地结合,因为它使用了Actions,ActionListeners和其他与Swing相关的类.

我坚持使用Swing Timer进行Swing相关任务,并将新的并发包用于不涉及更新GUI的内容.

看一下在Swing应用程序中使用计时器,因为它可能包含更多信息来摆脱(抱歉)决定.



2> bruno conde..:

我会说,对于简单的摇摆相关的东西,更好的选择是javax.swing.Timer因为这里提到的优点.

请注意,Swing计时器的任务是在事件派发线程中执行的.这意味着任务可以安全地操作组件,但这也意味着任务应该快速执行.

另一方面,如果您需要执行非摆动相关或更复杂/冗长的处理操作,那么ExecutorService它非常强大,绝对是您的选择.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有