Java Swing Timers中的负延迟

时间:2010-12-11 03:43:47

标签: java swing

我刚刚在一些代码中遇到过这个问题,我很困惑。

 timer = new Timer(-10, new
         ActionListener()
         {
            //Do some stuff
         });

摆动Timer对象中的负(或零)延迟有什么意义?根据API,第一个事件立即被触发,但是-10和负-100之间有什么区别?在我的代码中,它们似乎功能不同,但我无法确定它对Timer对象的更改。

1 个答案:

答案 0 :(得分:5)

javadoc说:“如果延迟小于或等于零,计时器会在启动时立即触发。”

所以答案是应该没有区别。您看到的明显差异可能只是应用程序和/或运行时系统中不确定性的结果。

<强>后续

  

那么,每个后续事件也会在它之前的事件之后立即触发,任何明显的“延迟”只是系统的产物吗?

延迟可能仅仅是因为线程切换不确定,以及Swing Timer使用一个线程为所有定时器执行事件监听器这一事实。

您应该阅读java.swing.Timerjava.util.Timer的javadoc以及它们链接到的其他文档。