java timer类两个timer_为什么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定时器来确定何时显示工具提示以及何时隐藏它.

>重复执行任务.

例如,您可以执行动画或更新显示向目标进展的组件.

Which one should I use if I want to simply run X every Y seconds?

取决于你正在进行的互动.如果您正在与GUI交互,那么使用javax.swing.Timer,否则使用java.util.Timer.

Does this mean if I’m building a GUI I have to use the swing version

for a timer?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用`javax.swing.Timer`来实现记时功能。`Timer`Swing组件库中的一个定时器,用于在指定的时间间隔内执行某个任务。 使用`Timer`实现记时功能的步骤如下: 1. 创建一个`javax.swing.Timer`对象,并设置时间间隔和动作监听器。时间间隔指定定时器的触发时间,动作监听器则指定每次定时器触发时执行的代码。 2. 调用`start()`方法启动定时器。 3. 在动作监听器中编写相应的代码来实现记时功能。 下面是一个简单的记时器示例: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TimerExample extends JFrame implements ActionListener { private JLabel timeLabel; private Timer timer; private int seconds; public TimerExample() { super("Timer Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 100); setLayout(new FlowLayout()); // 创建一个标签来显示计时器的时间 timeLabel = new JLabel("Time: 0 seconds"); add(timeLabel); // 创建一个定时器对象,每隔1秒触发一次 timer = new Timer(1000, this); seconds = 0; // 启动定时器 timer.start(); } // 定时器动作监听器 public void actionPerformed(ActionEvent e) { seconds++; timeLabel.setText("Time: " + seconds + " seconds"); } public static void main(String[] args) { new TimerExample().setVisible(true); } } ``` 在这个例子中,我们创建了一个`JLabel`标签来显示计时器的时间,然后创建了一个定时器对象`timer`,并设置了时间间隔为1秒,并将动作监听器设置为当前对象。在动作监听器中,每次定时器触发时,将计时器的时间加1秒,并更新标签的显示内容。 注意:定时器的时间间隔单位是毫秒。在上面的例子中,我们设置时间间隔为1000毫秒,即1秒。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值