使用线程的java中的计时器

时间:2013-03-16 08:22:18

标签: java multithreading

我正在开发核心java中的考试软件,我正在为学生进行各种测试。我被困在一段代码中,其中设置了倒计时器。 我的问题是当我显示其工作正常的分钟时,但是当我尝试以mm为单位显示分钟秒时:ss格式它不起作用。

代码是:

// for below int ti=20,si=60;
// test is for 20 minutes
public void run() {
    while (true) {
        try {
            Thread.currentThread().sleep(60000);

            for (int i = 0; i <= 60; i++) {
                etime.setText("Remaining Time:-" + ti + ":" + si);
                System.out.println("Remaining Time:-" + ti + ":" + si);
                Thread.currentThread().sleep(1000);
                si--;
            }
            ti--;
            if (ti == 0) {
                close();
            }
        } catch (InterruptedException ex) {
            Logger.getLogger(Exam.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
}

1 个答案:

答案 0 :(得分:1)

一旦si倒数到0,您需要将其重置为59。

此外,i变量完全没必要,并且循环中存在一个一个错误。