1. 程式人生 > >Swing中Timer定時器的使用

Swing中Timer定時器的使用

構造方法: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 Kong.Yee

     *   @E-mail     [email protected]

  *

  */

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 = newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");

MM表示月份  mm表示分鐘   hh:12小時制顯示幾點 HH:24小時制顯示幾點

相關推薦

SwingTimer定時的使用

構造方法:Timer(int delay,ActionListener listener) 建立一個每 delay 毫秒將通知其偵聽器的 Timer。 Api的一段示例程式碼 int delay = 1000; //milliseconds   ActionListe

javaTimer定時的使用

本博文只是簡單介紹一下Timer的使用方法。適用於初學者進行參考,希望大家多多指點。廢話不多說,直接上正題。 1、瞭解一下Timer類提供的方法 介紹幾個常用的方法: cancel() 終止此計時器,丟棄所有當前已安排的任務。 schedule(TimerTask t

javaTimer定時的使用和啟動

一.概述 定時計劃任務功能在Java中主要使用的就是Timer物件,它在內部使用多執行緒的方式進行處理,所以它和多執行緒技術還是有非常大的關聯的。在JDK中Timer類主要負責計劃任務的功能,也就是在指定的時間開始執行某一個任務,但封裝任務的類卻是TimerTask類。 二.應用場景 我

windows服務定時timer的使用

大家在使用c#寫windows服務時,網上很多例子說,使用工具箱中元件中的定時器就可以,但實際上該定時器並不管用,具體原因,微軟自稱是Framework的bug。 無論是windows窗體中timer還是元件中的timer都是繼承自System.Windows.Form.Ti

關於C#執行緒使用定時timer無效

線上程中,開啟定時器 timer.Start()時候,無法進入timer_Tick()事件。 ----------------------------------------------------

MFC使用多個timer定時

1,在MFC中新增WM_TIMER訊息處理函式會生成 void CFaceDetectDlg::OnTimer(UINT_PTR nIDEvent) { CDialogEx::OnTimer(nIDEvent); } 在需要定時的地方使用 SetTimer(

windows服務定時timer使用

Windows服務中Timer元件Tick無法觸發 具體原因,微軟自稱是Framework的bug: 但是無論是windows窗體中timer還是元件中的timer都是繼承自System.Windows.Form.Timer,並不是我們需要的System.Timers ,繼承自System.Timers

C#自定義高精度Timer定時的實例教程

edm 想要 精確 方式 mes 監視 工具 討論 etime Timer 用於以用戶定義的事件間隔觸發事件。Windows 計時器是為單線程環境設計的,其中,UI 線程用於執行處理。它要求用戶代碼有一個可用的 UI 消息泵,而且總是在同一個線程中操作,或者將調用封送到另一

C# System.Timers.Timer定時的使用和定時自動清理內存應用

for process work proc program 指定時間 handle 清理 interval 項目比較大有時候會比較卡,雖然有GC自動清理機制,但是還是有不盡人意的地方。所以嘗試在項目啟動文件中,手動寫了一個定時器,定時清理內存,加快項目運行速度。 pub

淺析muduo庫定時設施

val read eid 就是 RR 重新 cal using dss 一個設計良好的定時器在服務端的應用程序上至關重要,muduo定時器的實現陳碩大牛在書中已經詳細的談過,筆者嘗試從源碼的角度解讀定時器的實現,如果理解不對,歡迎指正。 在muduo的定時器系統中,一共由四

Linux Timer定時【轉】

support block 相對 art get ring nis 是的 data- 轉自:https://www.jianshu.com/p/66b3c75cae81 timerfd為Linux為用戶程序提供的定時器接口,該接口基於文件描述符,通過文

golang的Timer定時

now() 計時器 imp red 設置 修改 after eset res // code_047_Timer project main.go package main import ( "fmt" "time" ) func main() {

java script定時控制文字

<div id="text">      </div> <script>          var i=0;var str="能夠遇見你是我最大的幸運,有了你生活變得豐富多彩,

IOS開發NSTimer定時的使用

第一步:呼叫函式 [self getCircleBackGround:self.blcView.btChartView.mCircleView getCurrentLb:self.blcView.btChartView.mCurrent ]; 第二步:方法的實現 -(voi

Timer定時 (詳細講解)

Timer定時器主要做定時任務或者按照一定的時間間隔做任務,例如每天4點鐘定時執行作業等 Timer的特性 1、它屬於單執行緒的,每建立個Timer例項,就會建立一個新執行緒 2、Timer預設情況下不是守護執行緒,可以設定為守護執行緒new Timer(true),守護執行緒再程序中沒

【OpenGL】-008 GLUT定時

【OpenGL】-008 GLUT中的定時器   定時器是視窗程式中的一個重要功能,用於按照固定的時間間隔之後執行某些特定動作。在window程式中,有WM_TIMER訊息進行響應。在使用GLUT進行視窗管理的程式中,如何進行定時器操作? 文章目錄 【OpenG

傳統執行緒技術定時技術

傳統執行緒技術中有個定時器,定時器的類是Timer,我們使用定時器的目的就是給它安排任務,讓它在指定的時間完成任務。所以先來看一下Timer類中的方法(主要看常用的TimerTask()方法): 前面兩個是在指定延遲後執行或者重複執行,後面兩個是在指定時間執行或者重複執行。我們以前兩個為例來研究一下定時

Golang timer定時

Golang timer定時器   timer 計時器 用於在指定的Duration型別時間後呼叫函式或計算表示式。 如果只是想指定時間之後執行,使用time.Sleep() 使用NewTimer(),可以返回的Timer型別在計時器到期之前,取消該計時器

spring boot使用定時

1.通過使用@Scheduled註解的方式,fixedRate函式,它指定的是從呼叫開始時間到指定時間之後,單位毫秒 @Scheduled(fixedRate = 1000*60*60*12) 2.spring在初始化bean後,通過“postProcessAfterInitializati