我刚刚在一些代码中遇到过这个问题,我很困惑。
timer = new Timer(-10, new
ActionListener()
{
//Do some stuff
});
摆动Timer对象中的负(或零)延迟有什么意义?根据API,第一个事件立即被触发,但是-10和负-100之间有什么区别?在我的代码中,它们似乎功能不同,但我无法确定它对Timer对象的更改。
答案 0 :(得分:5)
javadoc说:“如果延迟小于或等于零,计时器会在启动时立即触发。”。
所以答案是应该没有区别。您看到的明显差异可能只是应用程序和/或运行时系统中不确定性的结果。
<强>后续强>
那么,每个后续事件也会在它之前的事件之后立即触发,任何明显的“延迟”只是系统的产物吗?
延迟可能仅仅是因为线程切换不确定,以及Swing Timer使用一个线程为所有定时器执行事件监听器这一事实。
您应该阅读java.swing.Timer
和java.util.Timer
的javadoc以及它们链接到的其他文档。