我刚刚在一些代码中遇到了这个,我很困惑。
timer = new Timer(-10, new
ActionListener()
{
//Do some stuff
});
swing Timer 对象中负(或零)延迟的意义是什么?根据 API,第一个事件会立即触发,但是 -10 和负 -100 之间有什么区别?在我的代码中,它们的功能似乎有所不同,但我不能完全确定它对 Timer 对象的更改。
最佳答案
javadoc 说:“如果延迟小于或等于零,计时器会在启动后立即触发。”。
所以答案是应该没有区别。您看到的明显差异可能只是您的应用程序和/或运行时系统不确定性的结果。
跟进
So then is each subsequent event fired immediately after the one before it as well, with any apparent 'delay' just the product of the system?
延迟可能只是因为线程切换的不确定性,以及 Swing Timer 使用一个线程来执行所有计时器的事件监听器这一事实。
您可能应该阅读 java.swing.Timer
的 javadocs和 java.util.Timer
以及它们链接到的其他文档。
关于java - Java Swing 定时器中的负延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4415074/