天天看點

倒計時器java介紹_JAVA軟體工程師-倒計時器

倒計時器java介紹_JAVA軟體工程師-倒計時器

使用Java多線程實作倒計時牌

§ 定義

開發一個圖形界面的倒計時牌程式,程式通過預先輸入的目标時間,動态顯示目前時間離目标時間相差的天數,小時數,分鐘數和秒數,每秒重新整理一次。

§ 說明

1. 該案例主要考察java多線程程式的設計基本方法。

2. 日期資料的處理方式。

3. 實作每秒重新整理一次的方法。

package classic3IOAndThread;

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.JFrame;

import javax.swing.JLabel;

//Graduate time from java school: 2010-8-19

public class CountDown {

long longTime;

long currentTime;

long distTime;

long day, hour, minutes, seconds;

public CountDown() {

CDown();

}

public void CDown() {

Timer timer = new

Timer();

JFrame jf = new JFrame();

final JLabel jl = new

JLabel();

jf.add(jl);

jf.setVisible(true);

jf.setSize(400, 150);

jf.getDefaultCloseOperation();

timer.schedule(new TimerTask()

{

@Override

public void

run() {

Calendar

cal = Calendar.getInstance();

cal.set(2010,

7, 19, 18, 0, 0);

//

傳回曆元到指定時間的毫秒數。

longTime

= cal.getTimeInMillis();

//

傳回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。

currentTime

= new Date().getTime();

distTime

= longTime - currentTime;

day

= ((distTime / 1000) / (3600 * 24));

hour

= ((distTime / 1000) - day * 86400) / 3600;

minutes

= ((distTime / 1000) - day * 86400 - hour * 3600) / 60;

seconds

= (distTime / 1000) - day * 86400 - hour * 3600

-

minutes * 60;

jl.setText(" 達内SD1003班 畢業倒計時" + day + " 天 " + hour + "小時 :" + minutes

+

"分鐘 :" + seconds + "秒");

}

}, 0, 1000);

}

public static void main(String[] args) {

new CountDown();

}

}

運作結果: 達内SD1003班 畢業倒計時 102天 20小時:10分鐘:10秒。

提示:顯示結果每秒自動刷性。