1

我有一个使用 Swing 编写的项目,我想JButton通过使用.JScrollPaneJSplitPanejavax.swing.Timer

那不是游戏。我想将Timer用于短动画,例如 mouseHover 事件、下拉菜单或滚动。但问题是,应该创建很多 Timer 对象。

问题:它对 JVM 执行什么操作?我会在应用程序会话期间启动和停止很多计时器。

4

2 回答 2

2

它对 JVM 执行什么操作?我会在应用程序会话期间启动和停止很多计时器。

Swing Timer以指定的时间间隔触发ActionEvents以动画对象提供函数:start()、stop()、restart(),最重要setDelay(int delay)的是以特定的时间间隔触发连续的动作事件,确保所有此类事件任务在 EDT(事件调度线程)中执行。All created 的等待状态Timers由单个共享线程管理,该线程TimerQueue由执行的第一个Timer对象创建。

处理timer可能很乏味。Timer我不会每次都编写相同的处理代码,而是使用类似swing TimingFrameWork的库。

于 2013-10-08T09:43:56.960 回答
2

那不是游戏。我想将 Timer 用于短动画,如 mouseHover 事件、下拉或滚动。但问题是,应该创建很多 Timer 对象。

  • 这仅适用Swing Timer于(mouseHover 事件、下拉或滚动)焦点来自mouse or key_eventsSwing Timer已实现和start(),最后一个对于等待用户操作结束很重要stop()restart()

  • 从逻辑上讲不可能产生多个事件,不同的情况会出现在多点触控显示的情况下,在这种情况下也只有一个事件很重要,其余事件是方向、缩放、因子等......

于 2013-10-08T09:50:45.480 回答