我有一个使用 Swing 编写的项目,我想通过向某些组件(JButton
、JScrollPane
、JSplitPane
) 使用 javax.swing.Timer
。
那不是游戏。我想将 Timer
用于短动画,例如 mouseHover 事件、下拉菜单或滚动。但问题是,应该创建很多 Timer 对象。
问题:它对 JVM 执行什么操作?我会在应用程序 session 期间启动和停止很多计时器。
最佳答案
What action does it perform for JVM? I would start and stop a lot of Timers during app session.
Swing Timer
在指定的时间间隔触发 ActionEvents
以动画对象提供函数:start()、stop()、restart(),最重要的是 setDelay(int delay)
触发连续的 Action 事件在特定的时间确保所有此类事件任务都在 EDT(事件调度线程)中执行。所有已创建的 Timer
的等待状态均由单个共享线程 TimerQueue
管理,该线程由执行的第一个 Timer
对象创建。
处理 timer
可能很乏味。与其每次都编写相同的 Timer
处理代码,不如使用像 swing TimingFrameWork 这样的库。 .
关于java - Swing 中的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244202/