Страницы

Поиск по вопросам

среда, 18 декабря 2019 г.

Таймер в Java Swing

#java #swing


Как создать таймер, который по прошествии заданного времени выполнит какое-либо действие?

Например, нужно сказать System.out.print("Hi!"); через 4 секунды
    


Ответы

Ответ 1



Смотрим на javax.swing.Timer Пример: import javax.swing.Timer; //Будет вызыватся каждую секунду timer = new Timer(1000, new ActionListener( public void actionPerformed(ActionEvent ev) { System.out.println("WOW!"); })); timer.start();

Ответ 2



Как альтернативный вариант (хотя Timer тут удобнее) с помощью стороннего Thread'a, чтобы не мешал основному: public class Test { public static void main(String args[]) { new Thread(new Runnable() { public void run() { while(true) { //бесконечно крутим try { Thread.sleep(4000); // 4 секунды в милисекундах System.out.println("Hi!"); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } } Либо, конечно, с помощью Таймера - переписать метод run(): import java.util.*; public class Test { public static void main(String args[]) { Timer timer = new Timer(); timer.schedule(new SayHello(), 0, 4000); // ставим по расписанию выполнять SayHello каждые 4 секунды } } class SayHello extends TimerTask { public void run() { System.out.println("Hi!"); } }

Ответ 3



Вот написал вам хороший пример package javaapplication24; import java.util.Timer; import java.util.TimerTask; public class JavaApplication24 { public static void main(String[] args) { final Timer time = new Timer(); time.schedule(new TimerTask() { int i = 0; @Override public void run() { //ПЕРЕЗАГРУЖАЕМ МЕТОД RUN В КОТОРОМ ДЕЛАЕТЕ ТО ЧТО ВАМ НАДО if(i>=2){ System.out.println("Таймер завершил свою работу"); time.cancel(); return; } System.out.println("Прошло 4 секунды"); i = i + 1; } }, 4000, 4000); //(4000 - ПОДОЖДАТЬ ПЕРЕД НАЧАЛОМ В МИЛИСЕК, ПОВТОРЯТСЯ 4 СЕКУНДЫ (1 СЕК = 1000 МИЛИСЕК)) } }

Комментариев нет:

Отправить комментарий