我真搞不清楚这一点。 Java的有两个定时器类,一个下摆动 ,和一个下UTIL ......这是为什么? 我应该使用哪一个,如果我想简单地运行X每Y秒? 这是否意味着,如果我建立一个GUI我不得不使用Swing版本定时器吗?
谢谢!
我真搞不清楚这一点。 Java的有两个定时器类,一个下摆动 ,和一个下UTIL ......这是为什么? 我应该使用哪一个,如果我想简单地运行X每Y秒? 这是否意味着,如果我建立一个GUI我不得不使用Swing版本定时器吗?
谢谢!
这里是javax.swing.Timer中和java.util.Timer中的区别:
javax.swing.Timer
java.util.Timer
您可以通过两种方式使用Swing定时器:
下面是上述信息的来源http://www.javapractices.com/topic/TopicAction.do?Id=160和http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html
我应该使用哪一个,如果我想简单地运行X每Y秒?
取决于你与互动。 如果您正在使用GUI交互然后用javax.swing.Timer
,否则使用java.util.Timer
。
这是否意味着,如果我建立一个GUI我不得不使用Swing版本定时器吗?
是
秋千版本渲染Swing组件。 如果你只是需要时间,使用UTIL。
你是那种正确的。 它的建议,如果你打算这样做,将通过定时器的影响UI的工作,你应该使用Swing组件。 该UTIL定时器不能设置UI元素本身。 这里是一个很好的对比 。
在1.3版本中,另一个Timer类被添加到Java平台:java.util.Timer中。 它和javax.swing.Timer的基本功能相同,但是java.util.Timer更常用,功能更多。 javax.swing.Timer有两个功能可以使它更容易一些使用GUI。 首先,其事件处理所熟悉的,GUI编程,可以使处理事件分派线程简单一点。 其次,它的自动线程共享意味着不必采取特殊步骤来避免生成过多线程。 相反,计时器使用让光标闪烁在同一个线程,工具提示出现,等等。
你可以找到更多的文件,并使用定时器通过访问如何使用定时器,在Java教程一节的几个例子。 更多的例子,并在此Timer类和java.util.Timer中之间进行选择的帮助,请参阅Swing应用程序,在摆动连接的文章中使用定时器。
从官方文档 。
如果你有一个简单,快捷的工作,需要与摆动框架交互,那么它更容易使用javax.swing.Timer中
对于几乎所有其他情况下 - 即使GUI appliactions如果你有一个图形用户界面,那么你应该使用java.util.Timer中,你必须使用EventQueue.invokeLater更新GUI来处理与Swing事件分派线程整合以同样的方式任何其他任务会正如刚才提到的
一般来说,当你开始,前几个定时器事件看似快速,不太可能影响性能,但是随着需求的变化,他们将需要更长的时间和更多的会出现和GUI本身将增长的需求。 这是一个更好的做法,由刚开始摆动环境之外,以避免返工 - 否则您的GUI将很快出现“迟滞”或“不可用”