java - Swing 中的动画

标签 java swing animation timer

我有一个使用 Swing 编写的项目,我想通过向某些组件(JButtonJScrollPaneJSplitPane) 使用 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/

相关文章:

objective-c - CABasicAnimation 向左移动帧 300px

java - 如何知道通用路径是直线还是曲线?

java - 使用 JavaDoc 记录 map 的标准方法是什么?

java - 如何从游标中获取记录

iphone - 使用动画删除 UITableView Cell

javascript - Bug - 滑出菜单脚本

java - 将 Java 文档导出为 XML

java - 按下按钮时如何运行另一个类的方法?

java - JFrame 对象的垃圾收集器

java - 在 JPanel 中获得良好的网格布局