来自Java教程:
请注意,Swing计时器的任务在事件分派线程中执行。这意味着任务可以安全地操作组件,但也意味着任务应该快速执行。如果任务可能需要一段时间才能执行完毕,则考虑使用SwingWorker替代或补充计时器。
"快速"是什么意思?我的意思是不精确的,少于一分钟算快吗?
例如,如果我想制作一个动画(1分钟),通过移动它们,改变它们的透明度等方式使用一些面板,并且用户只会看到面板,不会与它们一起工作(没有I / O),现在计时器对于这种情况是否是一个好主意?
来自Java教程:
请注意,Swing计时器的任务在事件分派线程中执行。这意味着任务可以安全地操作组件,但也意味着任务应该快速执行。如果任务可能需要一段时间才能执行完毕,则考虑使用SwingWorker替代或补充计时器。
"快速"是什么意思?我的意思是不精确的,少于一分钟算快吗?
例如,如果我想制作一个动画(1分钟),通过移动它们,改变它们的透明度等方式使用一些面板,并且用户只会看到面板,不会与它们一起工作(没有I / O),现在计时器对于这种情况是否是一个好主意?
这只是意味着 - 它应该是快速的,就像 - 几乎没有明显的延迟。
然而,在页面的后面,他们说如果您有一个复杂和并发的应用程序,请查看 SwingWorker 类,并了解与 swing 相关的 并发。
问题不一定是每件事情运行得多快,而是它在正确的顺序中。
在 SwingWorker 中,您将了解到多线程 Swing 应用程序中存在两个主要问题:
不应在事件分派线程上运行耗时任务。否则应用程序会变得无响应。
Swing 组件应该仅在事件分派线程上访问。