概述
Timer组件是计时器,可以在指定时间间隔触发一个或多个ActionEvent。
可以达成的效果如例:
快速入门
第一步,创建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,使它停止向其监听器发送动作事件