我自己写了一个Timerr类(计时器),代码如下:
import javax.swing.*;
/**
计时器
**/
public class Timerr extends Thread{
private static final long serialVersionUID = 1L;
private static long counter = System.currentTimeMillis();//记录程序开始时间
private static final String INITIAL_LABEL_TEXT = "00:00:00";
private JLabel label = new JLabel(INITIAL_LABEL_TEXT);
public boolean stopped = true;
public void run() {
while (true) {
long elapsed = System.currentTimeMillis() - counter;//程序运行了的毫秒数
label.setText(format(elapsed));//设置label对象上面的文字
try {
sleep(1); // 1毫秒更新一次显示
} catch (InterruptedException e) {
e.printStackTrace();
System.exit(1);
}
}
}
// 将毫秒数格式化
public String format(long elapsed) {
int hour, minute, second;
elapsed = elapsed / 1000;
second = (int) (elapsed % 60);
elapsed = elapsed / 60;
minute = (int) (elapsed % 60);
elapsed = elapsed / 60;
hour = (int) (elapsed % 60);
return String.format("%02d:%02d:%02d ", hour, minute, second);
}
}
然后我想在下图的代码里调用这个Timerr类
使得主类运行时,可以在游戏时长后面显示时间
但我调用Timerr的run()方法,系统却报错说不允许使用空类型,请问我要怎么调用Timerr?而且因为Timerr类只是编译过了,我不清楚到底有没有写对,是不是真的可以计时