分享

Swing中Timer定时器的使用

 昵称8442 2011-09-18
构造方法:Timer(int delay,ActionListener listener)
创建一个每 delay 毫秒将通知其侦听器的 Timer。
Api的一段示例代码
int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener()  {
    public void actionPerformed(ActionEvent evt) {
      //...Perform a task...
    }
  };
  new Timer(delay,taskPerformer).start();
该代码创建并启动一个每秒激发一次操作事件的计时器(正如该 Timer 构造 方法的第一个参数指定的那样)。该 Timer 构造方法的第二个参数指定一个接 收该计时器操作事件的侦听器。
上面是API上说明,javax.swing.Timer在 GUI编程在组件内容更新时经常用 到Timer,例如JTable、JLabel内容更新。
下面是一个简单的显示时间的GUI程序,可以加深对Timer的使用的理解:
显示时间的swing程序代码
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
/**
  * 测试swing中Timer的使用
  * 一个显示时间的GUI程序
  * @author wasw100
  *
  */
public class TimerTest extends JFrame implements  ActionListener {
  // 一个显示时间的JLabel
  private JLabel jlTime = new JLabel();
  private Timer timer;
  public TimerTest() {
  setTitle("Timer测试");
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setSize(180,80);
  add(jlTime);
  //设置Timer定时器,并启动
  timer = new Timer(500,this);
  timer.start();
  setVisible(true);
  }
  /**
  * 执行Timer要执行的部分,
  */
  @Override
  public void actionPerformed(ActionEvent e) {
  DateFormat format = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
  Date date = new Date();
  jlTime.setText(format.format(date));
  }
  public static void main(String[] args) {
  new TimerTest();
  }
}
程序说明:
类实现了ActionListener接口,所以可以直接timer = new Timer (500,this);使用this初始化计时器。
当计时器启动后(timer.start()执行后),每隔500毫秒执行一次实现的 ActionListener 接口中的actionPerformed的方法体
这里在补充一点显示时间格式的知识:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
MM表示月份  mm表示分钟   hh:12小时制显示几点  HH:24小时制显示几 点

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多