【发布时间】:2015-04-04 22:32:50
【问题描述】:
我必须制作一个倒计时程序,它还显示十分之一秒; 例如从 10.0 秒倒计时开始,它应该显示 9.9s, 9.8s, ... 0.0s
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
timer.start();
timer2.start();
}
Double timeLeft=5000; //5 seconds
Timer timer=new Timer(1,countDown);
Timer timer2=new Timer(1000,countDown2);
ActionListener countDown=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
timeLeft--;
SimpleDateFormat df=new SimpleDateFormat("mm:ss:S");
jLabel1.setText(df.format(timeLeft));
if(timeLeft<=0)
{
timer.stop();
}
}
};
发生的情况是完成 5 秒需要超过 5 秒。
我将上面的代码与另一个 Timer 进行了比较
int timeLeft2=5;
ActionListener countDown2=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
timeLeft2--;
jLabel2.setText(String.valueOf(timeLeft2));
if(timeLeft2<=0)
{
time2.stop();
}
}
};
他们不一样是很自然的吗?
【问题讨论】:
-
您需要显示毫秒还是分秒? IE。 9.8s、9.7s...或9.899s、9.898s...
-
9.8, 9.7 会很好:D
-
请在计时器上包含您安排倒计时2(以及倒计时)的行。您是否以相同的时间间隔执行它们?
-
已更新:D 抱歉,详情不完整
-
你的意思是 timer.start() 和 timer2.start() 吗?我的意思是您初始化计时器的行。例如timer = new Timer(100, 倒计时); timer2 = new Timer(1000, 倒计时);