我有一个问题让我遇到大麻烦.. 我使用java编写了一个竞赛倒计时。这是我的界面
我使用了countdown()方法来完成我的任务..
public void countdown(){
TimerTask doit = new TimerTask() {
@Override
public void run() {
c_s-=1;
if (c_s == -1)
{
c_m -= 1;
c_s = 59;
}
if (c_m == -1)
{
c_h -= 1;
c_m = 59;
}
hour.setText(c_h+"");
min.setText(c_m+"");
sec.setText(c_s+"");
if((c_h==-1)&& (c_m==59)&& (c_s==59)){
time_countdown.cancel();
JOptionPane.showMessageDialog(rootPane, "Invaild Time");
System.exit(0);
}
if((c_h==0)&& (c_m==0)&& (c_s==0)){
time_countdown.cancel();
JOptionPane.showMessageDialog(rootPane, "Times Up");
}
}
};
time_countdown.scheduleAtFixedRate(doit, 0L, 1000L);
}
我的情况是我暂停和恢复时间..?我不知道那样做!! !!如果有人能用这种方法给我一个解决方案,对我来说很容易.. (不要关心Round 01 line。它是秒表)
答案 0 :(得分:1)
也许最简单的方法是,如果暂停按钮切换一个bool变量,该变量告诉run方法在被调用之后(在任何更改发生之前)退出或者通过它。