Cof*_*fee 12
这意味着 - 它应该是快速的,因为 - 几乎没有可见的延迟.
但是,稍后在页面中他们会说如果你有一个复杂的并发应用程序,请查看SwingWorker 类并了解有关swing的并发性.
关注的不一定是一切运行的速度有多快,而是它的顺序正确.
在SwingWorker中,您将了解到多线程Swing应用程序存在两个主要问题:
不应在Event Dispatch Thread上运行耗时的任务.否则应用程序将无响应.
应仅在Event Dispatch Thread上访问Swing组件.
回答你的具体问题.
如果我想用一些面板制作动画(1分钟),通过移动它们,改变它们的透明度......用户只是看看面板而不能使用它们(没有I/O) ,现在Timer是这种情况的好主意吗?
是的,平滑动画需要一个Timer.
假设您希望每秒显示40帧.这意味着您有25毫秒准备和显示每个面板.
显然,你可以在动画循环之外移动的计算越多越好.现代个人计算机上只需几毫秒即可渲染面板.计算面板,可以轻松占用超过25毫秒.
因此,对于一分钟的动画,您需要2,400个面板.预先计算这些面板,然后只渲染它们,将导致更平滑的动画.