2014-01-12 4 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, можно добавить, если заявление в чеке таймера кода, когда .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(); 
     } 
    }); 

} 
3

Некоторые советы:

  • Посмотрите How to use Swing Timers след и вернуться с конкретными проблемами. Опишите, что вы пытаетесь выполнить и свою работу до сих пор, покажите свои попытки решить проблему и задать ответный вопрос.

  • Не использовать MouseListener для прослушивания при нажатии кнопки. Используйте вместо этого ActionListener . Взгляните на How to Use Buttons, Check Boxes, and Radio Buttons след.

Смежные вопросы