Java Swing的计时器组件Timer
  TEZNKK3IfmPf 2023年11月13日 82 0

概述

Timer组件是计时器,可以在指定时间间隔触发一个或多个ActionEvent。

可以达成的效果如例:

Java Swing的计时器组件Timer

快速入门

第一步,创建Timer。

第二步,向Timer构造器中传入两个参数,分别是延迟和事件。

第三步,调用start()方法启用计时器。

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setTitle("Timer测试");
        frame.setSize(300, 300);

        Container contentPane = frame.getContentPane();
        JLabel label = new JLabel("标签");
        contentPane.add(label);

        // 创建计时器组件Timer,传入两个参数,第一个参数是延迟1000毫秒,即每1000毫秒触发一次事件;第二个参数是事件处理
        Timer timer = new Timer(1000, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date = new Date();
                // 显示日期时间到JLabel标签中
                label.setText(format.format(date));
            }
        });
        timer.start();

        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

方法

Timer的构造器方法如下:

public Timer(int delay, ActionListener listener)
  • 第一个参数delay是延迟时间,单位为毫秒,即每delay毫秒后触发后面的事件。
  • 第二个参数listener是计时器动作事件的监听器,比如显示当前时间,由于每delay毫秒触发一次,所以可以看到连续变化的时间。

Timer的常用方法如下:

方法名称 说明
addActionListener(ActionListener 1) 将一个动作监听器添加到 Timer
getDelay() 返回两次触发动作事件间延迟,以毫秒为单位
isCoalesce() 如果 Timer 组合多个挂起的动作事件,则返回 true
isRunning() 如果 Timer 正在运行,则返回 true
restart() 重新启动 Timer,取消所有挂起的触发并使它按初始延迟触发
setCoalesce(boolean flag) 设置 Timer 是否组合多个挂起的 ActionEvent
setDelay(int delay) 设置 Timer 的事件间延迟,两次连续的动作事件之间的毫秒数
setLogTimers(boolean flag) 启用/禁用计时器日志
setRepeats(boolean flag) 如果 flag 为 false,则指示 Timer 只向其监听器发送一次动作事件
start() 启动 Timer,使它开始向其监听器发送动作事件
stop() 停止 Timer,使它停止向其监听器发送动作事件
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   76   0   0 javaSwing
  TEZNKK3IfmPf   2023年11月13日   18   0   0 组件Swing
  TEZNKK3IfmPf   2023年11月12日   24   0   0 组件Swing
  TEZNKK3IfmPf   2023年11月13日   83   0   0 Swing
TEZNKK3IfmPf