Java编程简单的倒计时器

来源:互联网 发布:普通电视怎么连接网络 编辑:程序博客网 时间:2024/04/30 08:45



import java.sql.Time;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;


import javax.swing.JFrame;
import javax.swing.JLabel;


/*使用多线程完成倒计时牌的时间显示,给定一个固定时间完成倒计时效果
实现思路
建立类继承Thread的线程类,并使用构造方法为目标时间赋值
计算当前距离目标时间的天数、小时、分钟和秒
调用Thread类的sleep()方法,每隔1秒钟进行时间的更新显示
*/
public class Timing extends Thread{
long longTime;
long currentTime;
long distTime;
long day, hours,minutes, seconds;
public Timing(){
Timer timer = new Timer();  //提供对计时器 MBean 的实现,实例化
JFrame jf = new JFrame();//创建窗体对象
final JLabel jl = new JLabel(); //用于短文本字符串或图像或二者的显示区
jf.add(jl);
jf.setVisible(true);  //设置窗体可见
jf.setSize(400, 150);//设置窗体大小
jf.setResizable(false); //设置窗口不能被调整
jf.getDefaultCloseOperation();//返回用户在此窗体上发起 "close" 时执行的操作。

timer.schedule(new TimerTask() {
@Override
public void run() {
Calendar cal = Calendar.getInstance();
cal.set(2016, 7, 20, 17 , 0, 0);

longTime  = cal.getTimeInMillis(); //返回距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的毫秒数。

currentTime = new Date().getTime();  //返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数

distTime = longTime - currentTime;

day = ((distTime / 1000) / (3600 * 24));
hours = ((distTime / 1000) - day * 86400) / 3600;
minutes = ((distTime / 1000) - day * 86400 - hours * 3600) / 60;
seconds = (distTime / 1000) - day * 86400 - hours * 3600 - minutes * 60;
jl.setText("距离星期天"+ day + " 天 " + hours + "小时 :" + minutes+ "分钟 :" + seconds + "秒");

}
}, 0,1000);
}


public static void main(String[] args) {
new Timing();
}
}
0 0
原创粉丝点击