如何在Java中制作倒计时?
我想每秒倒计时并更新标签文本如何在Java中制作倒计时?,java,timer,label,Java,Timer,Label,我想每秒倒计时并更新标签文本 int countdown = 100; public void countingDown() { countdown = countdown - 1; label.setText(countdown + "second's left"); } 那么如何每秒运行倒计时呢?试试这个 int countdown=100; public void countingDown(){ new Timer().schedule(new T
int countdown = 100;
public void countingDown() {
countdown = countdown - 1;
label.setText(countdown + "second's left");
}
那么如何每秒运行倒计时呢?试试这个
int countdown=100;
public void countingDown(){
new Timer().schedule(new TimerTask(){
@Override
public void run() {
countdown=countdown - 1;
label.setText(countdown +"second's left");
}
},0, 1000);
}
您可以使用下面的代码
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable refresh = new Runnable() {
public void run() {
//countingDown stuff;
}
};
scheduler.scheduleAtFixedRate(refresh, 0, 1,SECONDS);
你可能喜欢这样:
package com.example;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new App(), 0, 1000);
}
}
class App extends TimerTask {
int countdown = 100;
public void run() {
countdown = countdown - 1;
System.out.println(countdown);
//label.setText(countdown +"second's left");
}
}
// Result:
//99
//98
//97
//96
//95
//94
它只是工作。更改System.out.println(倒计时)
bylabel.setText(倒计时+“左二”)代码>如您所需
参考资料
它向我显示错误调度器。scheduleAtFixedRate(刷新,0,1,秒);它应该是scheduler.scheduleAtFixedRate(刷新,0,1,Timer.SECONDS)代码>请导入静态java.util.concurrent.TimeUnit.SECONDS;调用countingDown()一次,它在我的机器上工作。我已经编辑了代码。放置倒计时=倒计时-1;在run()方法中。并放置System.out.println();正在运行的测试方法。请尝试并让我知道timer.schedule(新应用程序(),0,1000)代码>1000表示停止时间(=1秒)。如果需要2.5秒,请将其更改为timer.schedule(新应用程序(),0,2500)代码>如果我想在计时器倒数达到0时停止计时器,请在方法中添加条件:public void run(){If(countdown!=0){countdown=countdown-1;System.out.println(countdown);}