Spec-Zone.ru › OpenJDK 8

Класс Timer

  • java.lang.Object
    • javax.swing.Timer
Все реализованные интерфейсы:
Serializable

public class Timer
extends Object
implements Serializable

Отправляет один или несколько ActionEvent через заданные интервалы. Пример использования — объект анимации, который использует Timer в качестве триггера для отрисовки кадров.

Настройка таймера включает создание объекта Timer, регистрацию одного или нескольких обработчиков событий на нём и запуск таймера с помощью метода start. Например, следующий код создаёт и запускает таймер, который отправляет событие действия один раз в секунду (как указано в первом аргументе конструктора Timer). Второй аргумент конструктора Timer определяет обработчик, который будет получать события действия таймера.

int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //...Perform a task...
      }
  };
  new Timer(delay, taskPerformer).start();

Timers строятся, указывая параметр задержки и ActionListener. Параметр задержки используется для задания как начальной задержки, так и задержки между отправкой событий в миллисекундах. После запуска таймера он ожидает начальную задержку перед отправкой первого ActionEvent зарегистрированным обработчикам. После этого первого события он продолжает отправлять события каждый раз, когда истекает задержка между событиями, до тех пор, пока он не будет остановлен.

После создания начальную задержку и задержку между событиями можно изменить независимо, а также добавить дополнительных ActionListeners.

Если вы хотите, чтобы таймер отправил только первый раз, а затем остановился, вызовите метод setRepeats(false) для таймера.

Хотя все Timer выполняют ожидание, используя один общий поток (созданный первым объектом Timer, который его выполняет), обработчики событий действия для Timer выполняются в другом потоке — потоке диспетчеризации событий. Это означает, что обработчики действий для Timer могут безопасно выполнять операции с компонентами Swing. Однако это также означает, что обработчики должны быстро выполняться, чтобы интерфейс пользователя оставался отзывчивым.

В версии 1.3 на платформу Java был добавлен ещё один класс Timer: java.util.Timer. Он и javax.swing.Timer обеспечивают одинаковую основную функциональность, но java.util.Timer более универсален и имеет больше функций. В javax.swing.Timer есть две функции, которые могут сделать его немного проще использовать с графическими интерфейсами пользователя. Во-первых, его метафора обработки событий знакома программистам GUI и может упростить работу с потоком диспетчеризации событий. Во-вторых, автоматическое совместное использование потоков означает, что вам не нужно предпринимать специальных шагов, чтобы избежать создания слишком большого количества потоков. Вместо этого ваш таймер использует тот же поток, который используется для мигания курсора, отображения подсказок и т. д.

Вы можете найти дополнительную документацию и несколько примеров использования таймеров, посетив Как использовать таймеры, раздел в Руководстве Java. Для получения дополнительных примеров и помощи в выборе между этим классом Timer и java.util.Timer, см. Использование таймеров в приложениях Swing, статью в The Swing Connection.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, работающими на одной версии Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans™ была добавлена в пакет java.beans. Обратитесь к XMLEncoder.

См. также:
java.util.Timer

Поля

Модификатор и тип Поле и описание
protected EventListenerList listenerList

Конструкторы

Конструктор и описание
Timer(int delay, ActionListener listener)

Создаёт Timer и инициализирует начальную задержку и задержку между событиями в delay миллисекунд.

Методы

Модификатор и тип Метод и описание
void addActionListener(ActionListener listener)

Добавляет обработчик событий действия в Timer.

protected void fireActionPerformed(ActionEvent e)

Уведомляет всех слушателей, которые проявили интерес к уведомлению об этом типе события.

String getActionCommand()

Возвращает строку, которая будет передана в качестве команды действия в ActionEvent событиях, отправленных этим таймером.

ActionListener[] getActionListeners()

Возвращает массив всех обработчиков событий действия, зарегистрированных в этом таймере.

int getDelay()

Возвращает задержку в миллисекундах между отправкой событий действия.

int getInitialDelay()

Возвращает начальную задержку таймера.

<T extends EventListener>
T[]
getListeners(Class<T> listenerType)

Возвращает массив всех объектов, которые в данный момент зарегистрированы как FooListener для этого Timer.

static boolean getLogTimers()

Возвращает true при включенном ведении журнала.

boolean isCoalesce()

Возвращает true если Timer объединяет несколько ожидающих событий действия.

boolean isRepeats()

Возвращает true (по умолчанию), если Timer будет отправлять события действия слушателям несколько раз.

boolean isRunning()

Возвращает true если Timer запущен.

void removeActionListener(ActionListener listener)

Удаляет указанного обработчика событий действия из Timer.

void restart()

Перезапускает Timer, отменяя все ожидающие запуски и заставляя его запускаться с начальной задержкой.

void setActionCommand(String command)

Устанавливает строку, которая будет передана в качестве команды действия в ActionEvent событиях, отправленных этим таймером.

void setCoalesce(boolean flag)

Устанавливает, объединяет ли Timer несколько ожидающих ActionEvent событий.

void setDelay(int delay)

Устанавливает задержку между событиями Timer в миллисекундах.

void setInitialDelay(int initialDelay)

Устанавливает начальную задержку Timer, время в миллисекундах, которое нужно подождать после запуска таймера перед отправкой первого события.

static void setLogTimers(boolean flag)

Включает или отключает журнал таймера.

void setRepeats(boolean flag)

Если flag false, инструктирует Timer отправлять только одно событие действия слушателям.

void start()

Запускает Timer, заставляя его отправлять события действия слушателям.

void stop()

Останавливает Timer, заставляя его прекратить отправку событий действия слушателям.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

listenerList

protected EventListenerList listenerList

Конструкторы

Timer

public Timer(int delay,
             ActionListener listener)

Создаёт таймер и инициализирует начальную задержку и задержку между событиями в Timer миллисекундах. Если delay меньше или равно нулю, таймер срабатывает сразу после запуска. Если listener не null, он регистрируется как обработчик событий таймера.

Параметры:
delay - миллисекунды для начальной и задержки между событиями
listener - начальный обработчик событий; может быть null
См. также:
addActionListener(java.awt.event.ActionListener), setInitialDelay(int), setRepeats(boolean)

Методы

addActionListener

public void addActionListener(ActionListener listener)

Добавляет обработчик событий в таймер.

Параметры:
listener - обработчик событий для добавления
См. также:
Timer(int, java.awt.event.ActionListener)

removeActionListener

public void removeActionListener(ActionListener listener)

Удаляет указанный обработчик событий из таймера.

Параметры:
listener - обработчик событий для удаления

getActionListeners

public ActionListener[] getActionListeners()

Возвращает массив всех зарегистрированных обработчиков событий для данного таймера.

Возвращает:
все обработчики событий таймера или пустой массив, если обработчики событий не зарегистрированы
С:
1.4
См. также:
addActionListener(java.awt.event.ActionListener), removeActionListener(java.awt.event.ActionListener)

fireActionPerformed

protected void fireActionPerformed(ActionEvent e)

Уведомляет всех слушателей, которые проявили интерес к уведомлению об этом типе события.

Параметры:
e - событие действия для запуска
См. также:
EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)

Возвращает массив всех объектов, в настоящее время зарегистрированных как FooListener для данного Timer. FooListener регистрируются с помощью метода addFooListener.

Вы можете указать аргумент listenerType с использованием литерала класса, например FooListener.class. Например, вы можете запросить слушателей событий действия для экземпляра Timer следующим кодом:

ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));
Если такие слушатели не существуют, этот метод возвращает пустой массив.
Параметры:
listenerType - тип запрашиваемых слушателей; этот параметр должен указывать интерфейс, унаследованный от java.util.EventListener
Возвращает:
массив всех объектов, зарегистрированных как FooListener для этого таймера, или пустой массив, если такие слушатели не были добавлены
Исключение:
ClassCastException - если listenerType не указывает класс или интерфейс, реализующий java.util.EventListener
С:
1.3
См. также:
getActionListeners(), addActionListener(java.awt.event.ActionListener), removeActionListener(java.awt.event.ActionListener)

setLogTimers

public static void setLogTimers(boolean flag)

Включает или отключает логирование таймера. При включении, сообщение публикуется в System.out каждый раз, когда таймер срабатывает.

Параметры:
flag - true для включения логирования
См. также:
getLogTimers()

getLogTimers

public static boolean getLogTimers()

Возвращает true значение, если логирование включено.

Возвращает:
true значение, если логирование включено; в противном случае, false
См. также:
setLogTimers(boolean)

setDelay

public void setDelay(int delay)

Устанавливает задержку между событиями таймера, количество миллисекунд между последовательными событиями действия. Это не влияет на начальную задержку, которую можно установить методом setInitialDelay.

Параметры:
delay - задержка в миллисекундах
См. также:
setInitialDelay(int)

getDelay

public int getDelay()

Возвращает задержку в миллисекундах между запусками событий действия.

См. также:
setDelay(int), getInitialDelay()

setInitialDelay

public void setInitialDelay(int initialDelay)

Устанавливает начальную задержку таймера, время в миллисекундах ожидания после запуска таймера перед запуском первого события. При создании он устанавливается так же, как и задержка между событиями, но затем его значение независимо и не изменяется изменениями задержки между событиями.

Параметры:
initialDelay - начальная задержка в миллисекундах
См. также:
setDelay(int)

getInitialDelay

public int getInitialDelay()

Возвращает начальную задержку таймера.

См. также:
setInitialDelay(int), setDelay(int)

setRepeats

public void setRepeats(boolean flag)

Если flag равно false, указывает таймеру отправить только одно событие действия своим обработчикам.

Параметры:
flag - указывает false таймеру остановиться после отправки первого события действия

isRepeats

public boolean isRepeats()

Возвращает true (по умолчанию), если таймер будет отправлять событие действия своим обработчикам несколько раз.

См. также:
setRepeats(boolean)

setCoalesce

public void setCoalesce(boolean flag)

Устанавливает, будет ли таймер объединять несколько ожидающих событий запуска. Занятое приложение может не успевать за генерацией событий таймера, что приводит к очереди нескольких событий действия. При обработке приложение отправляет эти события одно за другим, заставляя слушателей таймера получать последовательность событий без задержек между ними. Объединение событий предотвращает эту ситуацию, сводя несколько ожидающих событий к одному событию. Таймеры объединяют события по умолчанию.

Параметры:
flag - указывает false для отключения объединения

isCoalesce

public boolean isCoalesce()

Возвращает true если таймер объединяет несколько ожидающих событий действия.

См. также:
setCoalesce(boolean)

setActionCommand

public void setActionCommand(String command)

Устанавливает строку, которая будет передаваться как команда действия в событиях, генерируемых этим таймером. null является допустимым значением.

Параметры:
command - команда действия
С:
1.6

getActionCommand

public String getActionCommand()

Возвращает строку, которая будет передаваться как команда действия в событиях, генерируемых этим таймером. Может быть null, что также является значением по умолчанию.

Возвращает:
команда действия, используемая при генерации событий
С:
1.6

start

public void start()

Запускает таймер, заставляя его начать отправлять события действия своим обработчикам.

См. также:
stop()

isRunning

public boolean isRunning()

Возвращает true если таймер работает.

См. также:
start()

stop

public void stop()

Останавливает таймер, заставляя его прекратить отправку событий действия своим обработчикам.

См. также:
start()

restart

public void restart()

Перезапускает таймер, отменяя все ожидающие запуски и заставляя его запуститься с начальной задержкой.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API