栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么在Java中有两个Timer类(一个在javax.swing下,一个在java.util下)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么在Java中有两个Timer类(一个在javax.swing下,一个在java.util下)?

这是javax.swing.Timer和java.util.Timer之间的区别:

javax.swing.Timer
  • 适用于较简单的情况,使用较少的计时器(例如少于十二个)
  • 在事件分配线程上运行ActionListener对象
  • 可以直接更新GUI,而无需使用EventQueue.invokeLater
  • 如果任务完全在事件分发线程中运行(也就是说,如果它没有产生工作线程),则仅当任务花费的时间不长(例如不到300毫秒)时,GUI才会保持响应状态。

java.util.Timer

  • 比javax.swing.Timer更具可扩展性,并具有其他计划功能
  • 在私有线程上运行TimerTask对象
  • 需要使用EventQueue.invokeLater来更新GUI

您可以通过两种方式使用Swing计时器:

  • 延迟一次,一次执行一次任务。例如,工具提示管理器使用Swing计时器来确定何时显示工具提示以及何时隐藏工具提示。
  • 重复执行任务。例如,您可以执行动画或更新显示目标进度的组件。

这是上述信息的来源http://www.javapractices.com/topic/TopicAction.do?Id=160
和http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

如果我想每隔Y秒简单地运行X,应该使用哪一个?

取决于您与之互动的内容。如果要与GUI交互,请使用

javax.swing.Timer
,否则请使用
java.util.Timer

这是否意味着如果我要构建GUI,则必须使用摆动版本的计时器?



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号