Java制作一个简单的倒计时窗口

    倒计时窗口在很多程序里面也很重要,今天我想分享一下如何制作一个简易的倒计时窗口。

    示例:制作一个五秒后会关闭的窗口并有倒计时显示。

    效果:

创建一个类AutoClose为窗口的类:

import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;
public class AutoClose{
	static int i=5;		//表示延迟时间
	static JFrame j=new JFrame("2333");
	static JLabel l=new JLabel("窗口将在"+AutoClose.i+"秒后关闭!");		//必须先设置文本,否则在一秒后才会显示文本!!!
	public static void main(String[] args) {	
		j.setSize(350,150);
		JPanel p=new JPanel();
		l.setFont(new Font("宋体", Font.PLAIN, 30));
		l.setBounds(23, 37, 282, 46);
		p.setLayout(null);
		p.add(l);
		j.getContentPane().add(p);
		new DelayTest().t();
		j.show();
	}
}

 再创建一个类 DelayTest,用于计时和延时:

import java.util.Timer;
import java.util.TimerTask;
public class DelayTest {
	public void t() {
		if(AutoClose.i>0) {		//判断:时间大于0时---执行延时语段
			Timer timer=new Timer();		
			timer.schedule(new TimerTask() {
				public void run() {	
					AutoClose.i=AutoClose.i-1;		//窗口上显示的时间减1
					AutoClose.l.setText("窗口将在"+AutoClose.i+"秒后关闭!");		//重设窗口的显示时间
					if(AutoClose.i==0) {		//判断:时间到时---关闭窗口
		        		AutoClose.j.dispose();
		        	}else {		//否则:返回,再计时一秒
		        		new DelayTest().t();
		        	}
				}           
			}, 1000);    	//延迟一秒
		}
	}

}

 其原理是:窗口显示出来后,会执行延迟类(DelayTest)里的延时方法,延时方法每一秒会将时间变量(i)减1并刷新窗口上的文本,再判断时间是否到了,时间没到会再返回并重新执行延时方法,直到时间变量减为零为止。判断时间变量为0,便关闭窗口。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章