2014-11-03 2 views
1

Я пытаюсь остановить программу на секунду с помощью таймера поворота.Как работать с таймером качания

Timer timer = new Timer(10000, 
    new ActionListener(public void actionPerformed(ActionEvent e) {})); 

не работает

public class Card extends JButton implements ActionListener { 

    int numberClick = 0; 

    public card() { 
     addActionListener(this); 
    } 

    public void actionPerformed(ActionEvent e) { 
     numberClick++; 

     if(numberClick == 2) { 
      Timer timer = new Timer(10000,); 
      timer.start(); 
      numberClick = 0; 
     } 
    } 
} 

ответ

2

Вы, кажется, не хватает базового понимания того, как работает таймер. Пожалуйста, прочитайте How to Use Swing Timers. Концепция довольно проста.

Первый аргумент в конструкторе Timer - это delay. Кажется, у вас есть эта часть. Второй аргумент - ActionListener, который прослушивает «События таймера» (на самом деле ActionEvents). Событие запускается с задержкой. Обратный вызов (actionPerformed) содержит то, что должно быть выполнено после этой задержки (отметьте). Итак, что бы вы ни захотели после этой секунды, поставьте его в actionPerformed таймера ActionListener.

Также, если вы хотите, чтобы это произошло один раз, вы должны позвонить timer.setRepeats(false);. Также обратите внимание, что вы используете 10000, который находится в миллисекундах, так что 10 секунд, а не 1. Вы должны изменить его 1000

Пример потока

JButton button = new JButton("Press Me"); 
button.addActionListener(new ActionListener(){ 
    @Override 
    public void actionPerformed(ActionEvent e) { 

     Timer timer = new Timer(1000, new ActionListener(){ 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       System.out.println("Print after one second"); 
      } 
     }); 
     timer.setRepeats(false); 
     timer.start(); 
    } 
}); 

Нажмите кнопку → Подождите одну секунду → Заявление о печати

+0

@ ForJava: Если этот ответ помог вам, вы должны помнить о том, чтобы упрекнуть и [принять] (http://stackoverflow.com/help/someone-answe rs) it (Пожалуйста, проверьте ссылку). –

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