程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Swing中Timer定時器的使用

Swing中Timer定時器的使用

編輯:關於JAVA

構造方法: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小時制顯示幾 點

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved