Как добавить таймер цикла в Java?

1

Как зацикливать этот таймер? Я хочу печатать каждые 1 секунду.

Timer timer = new Timer();
timer = new Timer(false);
for (int i = 0; i < 10; i++) {
   timer.schedule(new TimerTask() {
      @Override
      public void run() {
         i--;
         System.out.println("Java " + i);
      }
   }, 0, 1000);
}
  • 0
    каков ваш текущий выход?
Теги:
timer
loops

2 ответа

2
Лучший ответ

Если это действительно то, что вы хотите, измените

}, 0, 1000);

в

}, 0, i * 1000);

И поместите i = 0 в i = 1, а 11 не 10 или используйте <=

Он будет создавать и планировать новую TimerTask 10 раз

  • 0
    Я попробую это
  • 0
    Работает спасибо за быстрый ответ
Показать ещё 5 комментариев
0

Хорошим способом является создание собственного класса TimerTask.

В вашем основном классе у вас есть этот основной метод:

   public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new MyTimerTask(10), 1000, 1000);
    }

И тогда вам нужно создать собственный класс TimerTask

import java.util.TimerTask;

public class MyTimerTask extends TimerTask {
    private int i2;
    public MyTimerTask(int i2){
        this.i2 = i2;
    }
    @Override
    public void run() {
        System.out.println("heej: " + i2);
    }    
}

Это выводит heej: 10 каждую секунду.


С вашим собственным классом вы можете контролировать, что такое happeing, например:

import java.util.TimerTask;

public class MyTimerTask extends TimerTask {
    private int i2;
    private int count = 0;

    public MyTimerTask(int i2){
        this.i2 = i2;
    }
    @Override
    public void run() {
        count++;
        System.out.println("heej: " + i2);
        if (count > 10){
            this.cancel();            
        }
    }    
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню