2014-01-12 71 views
0

有沒有辦法輕鬆將thread.sleep轉換爲javax.swing.timer?如何將thread.sleep轉換爲javax.swing.timer?

我需要這樣做的原因是當您按下按鈕時停止用戶界面凍結,以便您可以實現暫停按鈕。

代碼示例:

btnStartTiming.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseReleased(MouseEvent arg0) { 
       try{ 
         inputA = Double.parseDouble(txtEnterHowLong.getText()); //Changes double to string and receives input from user 
         }catch(NumberFormatException ex){       
         } 

      while (counter <= inputA){ 
        txtCounter.setText(counter + ""); 
        try { 
         Thread.sleep(1000); 
        } catch(InterruptedException ex) { 
         Thread.currentThread().interrupt(); 
        } 
        System.out.println(counter); 
        counter++; 
        } 
     } 
    }); 
+1

這是什麼問題? –

+0

我不確定如何在此代碼中實現javax.swing.timer。 – Harold

+2

教程正在等待。 –

回答

2
  • java.swing.Timer在構造函數。您可以使用按鈕來定時器.start()
  • 也代替while,你可以在計時器代碼檢查添加一個if語句時.stop()

像這樣的事情

int delay = 1000; 
Timer timer = new Timer(delay, null); 

public Constructor(){ 
    timer = new Timer(delay, new ActionListener(){ 
     public void actionPerformed(ActionEvent e) { 
      if (counter >= inputA) { 
       timer.stop(); 
      } else { 

       // do something 
      } 
     } 
    }); 
    button.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e) { 
      timer.start(); 
     } 
    }); 

} 
相關問題