如何在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(倒计时)
by
label.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);}