⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 countdown.java

📁 支持GUI和持久对象的联机测试系统
💻 JAVA
字号:
/*
 * CountDown.java
 * 
 * MSE06B班张智力的实验报告
 * 
 * 2006年12月10日
 */

package olts.util;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;

/**
 * CountDown类,工具类,提供倒计时钟计数器。
 *
 */
public class CountDown {
    
    /**
     * ClockTimer类,内部类,继承了TimerTask类,实现了其中的run方法,把一个倒计的时间显示出来
     */	
    class ClockTimerTask extends TimerTask{
        public void run(){
            if(countDownNumber > 0){
                hour = countDownNumber / 3600;
                munite = countDownNumber / 60;
                second = countDownNumber % 60;
                show.setText("剩余时间:" + hour + ":" + munite + ":" + second);
                countDownNumber --;
            }
            else show.setText("时间到");
        }
    }
    
    /**
     * countDownTimer对象,SingleTon模式对唯一返回对象
     */
    private static CountDown countDownTimer;

    /**
     * countDownNumber属性,需要倒数的秒数
     */
    private static int countDownNumber;

    /**
     * hour,表示小时
     */
    private int hour;

    /**
     * munite,表示分钟
     */
    private int munite;

    /**
     * second,表示秒钟
     */
    private int second;

    /**
     * show对象,回调主界面的JLabel,并在其上面显示倒数的时间
     */
    private static JLabel show;

    /**
     * timer对象,本工具使用的计时器
     */
    private Timer timer;

    /**
     * CountDown构造函数
     */
    private CountDown(int time, JLabel label) {
        this.countDownNumber = time;
        this.show = label;
    }

    /**
     * getCountDown方法,获取CountDown对象的方法,SingleTon模式中的获取对象方法。
     */
    public static CountDown getCountDown(int time, JLabel label){
        if(countDownTimer == null){
            countDownTimer = new CountDown(time, label);
        }
        return countDownTimer;
    }

    /**
     * start方法,计时器启动方法
     */
    public void start(){
        if(timer == null){
            timer = new Timer();
        }
        timer.schedule(new  ClockTimerTask(), 0, 1000);
    }

    /**
     * pause方法,计时器暂停方法
     */
    public void pause(){
        if(timer != null){
            timer.cancel();
            timer = null;
        }
    }

    /**
     * stop方法,计时器停止方法
     */
    public void stop(){
        if(timer != null){
            timer.cancel();
            timer = null;
        }
        countDownTimer = null;
        show.setText("已提交");
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -