我对此真的很困惑。Java有两个Timer类,一个在swing下,另一个在util下...为什么会这样呢?如果我想简单地每Y秒运行一次X,我应该使用哪一个?这是否意味着如果我正在构建GUI,我必须使用swing版本的计时器?
谢谢!
发布于 2013-03-22 03:57:54
以下是javax.swing.Timer和java.util.Timer之间的区别:
javax.swing.Timer)时,图形用户界面才会保持响应
java.util.Timer
图形用户界面比javax.swing.Timer更具可伸缩性,并且通过在专用线程上额外调度features
您可以通过两种方式使用Swing计时器:
以下是上述信息的来源http://www.javapractices.com/topic/TopicAction.do?Id=160和http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html
如果我想简单地每Y秒运行一次X,我应该使用哪一个?
这取决于您与之交互的内容。如果你正在与图形用户界面交互,那么使用javax.swing.Timer,否则使用java.util.Timer。
这是不是意味着如果我正在构建一个图形用户界面,我必须使用swing版本的计时器?
是
发布于 2013-03-22 03:49:03
Swing版本用于呈现swing组件。如果只需要计时,可以使用util。
发布于 2013-03-22 03:49:12
你是对的。建议您如果要执行将受计时器影响的UI工作,则应使用swing组件。util计时器本身不能设置UI元素。Here is a nice comparison。
https://stackoverflow.com/questions/15556646
复制相似问题