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

📄 timer.java

📁 一个JAVA写的连连看游戏,非常不错,是学习JAVA的好资料,值得下载
💻 JAVA
字号:
package jcase.lianliankan;

import javax.swing.JProgressBar;

public class Timer extends JProgressBar implements Runnable {
	private boolean clockthread=false; //设置一个线程运行标志
	//int min=0;
	private int sec=0;
	private long startTime;
	private StageListener listener;
	public Timer(int max_seconds){
		super(0,max_seconds);
		this.setStringPainted(true);
	}
	public void start() //线程开始的类
	{
		if(!clockthread){
			clockthread=true;
			new Thread (this).start(); //开始新的线程
			startTime=System.currentTimeMillis();
		}
	}

	public void stop() //终止线程
	{		
		clockthread=false; //设置标志位为false,终止线程
	}

	public void run() 
	{
		while(clockthread) 
		{			
			this.setValue(sec);
			this.setString(getTime());
			try{
				Thread.sleep(1000);//让线程沉睡1000毫秒,也就是一秒钟
			} catch(InterruptedException e){
				//do noting
			} 
			sec++; //计时器自动增加
			if(sec > this.getMaximum() && (listener != null)){
				clockthread=false;
				listener.timedOut();
			}
		}
	}
	/**
	 * 奖励玩家一些时间(即计时器减少奖励的秒数)
	 */
	protected void credit(int seconds){
		if(sec-seconds>0){
			sec-=seconds;
		}else{
			sec=0;
		}
	}
	/**
	 * 得到游戏开始到现在逝去的准确时间,而不是本类的计时器所计算的时间。
	 * @return 逝去时间的字符串,格式mm:ss
	 */
	public String getTime()
	{
		StringBuffer ti=new StringBuffer(5);
		int minute,second;
		int seconds=(int)((System.currentTimeMillis()-startTime)/1000);
		minute=seconds/60;
		second=seconds%60;
		
		if (minute<10)
			ti.append("0");
		ti.append(Integer.toString(minute));
		ti.append(":");
		if (second<10)
			ti.append("0");
		ti.append(Integer.toString(second));		
		return ti.toString();
	}	
	/**
	 * @return Returns the listener.
	 */
	StageListener getListener() {
		return listener;
	}
	/**
	 * @param listener The listener to set.
	 */
	void setListener(StageListener listener) {
		this.listener = listener;
	}
}

⌨️ 快捷键说明

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