2013-03-16 22 views
1

我正在開發一個核心java的考試軟件,我正在爲學生進行各種測試。我被卡在一塊代碼中設置了倒數計時器。 我的問題是,當我顯示分鐘它的工作正常,但是當我嘗試顯示與分鐘毫秒的秒:秒格式它不工作。在java中使用線程的計時器

代碼是:

// 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); 
     } 

    } 
} 
+0

不以什麼方式工作? – NPE 2013-03-16 08:23:28

+0

分鐘正在下降,但秒數只是總是顯示60秒 – user2125727 2013-03-16 08:28:19

+0

set si = 60 each munites – BlackJoker 2013-03-16 08:28:48

回答

1

一旦si倒計數至0,則需要將其重置到59

此外,i變量是完全沒有必要的,並且有一個關斷由在你的循環中出現一個錯誤。

+0

+1對於100K Yippee! – Bohemian 2013-03-16 08:28:27

+0

@波希米亞:謝謝:) – NPE 2013-03-16 08:28:53

+0

+1並且感謝你 – user2125727 2013-03-16 08:39:43