Spec-Zone.ru › OpenJDK 21

Класс 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 есть две особенности, которые могут сделать его немного проще использовать с графическими интерфейсами. Во-первых, метафора обработки событий знакома программистам графических интерфейсов и может упростить работу с потоком обработки событий. Во-вторых, автоматическое совместное использование потоков означает, что вам не нужно предпринимать специальных шагов, чтобы избежать создания слишком большого количества потоков. Вместо этого ваш таймер использует тот же поток, который используется для мигания курсора, появления всплывающих подсказок и так далее.

Вы можете найти дополнительную документацию и несколько примеров использования таймеров, посетив Как использовать таймеры, раздел в руководстве по Java.

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

С момента:
1.2
См. также:
  • 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()
Возвращает начальную задержку Timer.
<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
Коллекция зарегистрированных слушателей

Подробное описание конструкторов

Таймер

public Timer(int delay, ActionListener listener)
Создает Timer и инициализирует начальную задержку и задержку между событиями в delay миллисекундах. Если delay меньше или равно нулю, таймер срабатывает сразу после запуска. Если listener не null, он регистрируется как слушатель событий на таймере.
Параметры:
delay - миллисекунды для начальной и задержки между событиями
listener - начальный слушатель; может быть null
См. также:
  • addActionListener(java.awt.event.ActionListener)
  • setInitialDelay(int)
  • setRepeats(boolean)

Подробное описание методов

addActionListener

public void addActionListener(ActionListener listener)
Добавляет слушателя событий к Timer.
Параметры:
listener - слушатель для добавления
См. также:
  • Timer(int, java.awt.event.ActionListener)

removeActionListener

public void removeActionListener(ActionListener listener)
Удаляет указанного слушателя событий из Timer.
Параметры:
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)
Возвращает массив всех объектов, в данный момент зарегистрированных как слушатели на этом таймере. Слушатели регистрируются с помощью метода addFooListener.

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

ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));
Если такие слушатели отсутствуют, метод возвращает пустой массив.
Тип параметров:
T - тип класса слушателя, запрашиваемого
Параметры:
listenerType - тип запрашиваемых слушателей; этот параметр должен указать интерфейс, наследуемый от java.util.EventListener
Возвращает:
массив всех объектов, зарегистрированных как слушатели на этом таймере, или пустой массив, если такие слушатели не добавлены
Исключения:
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 (по умолчанию), если таймер будет отправлять события своим слушателям несколько раз.
Возвращает:
true, если таймер будет отправлять события своим слушателям несколько раз
См. также:
  • setRepeats(boolean)

setCoalesce

public void setCoalesce(boolean flag)
Устанавливает, будет ли таймер объединять несколько ожидающих срабатываний. Занятое приложение может не успевать обрабатывать события таймера, что приводит к очереди нескольких событий. При обработке приложение отправляет эти события одно за другим, заставляя слушателей таймера получать последовательность событий без задержки между ними. Объединение предотвращает эту ситуацию, сводя несколько ожидающих событий к одному. Таймеры объединяют события по умолчанию.
Параметры:
flag - укажите false для отключения объединения

isCoalesce

public boolean isCoalesce()
Возвращает true если таймер объединяет несколько ожидающих событий.
Возвращает:
true, если таймер объединяет несколько ожидающих событий
См. также:
  • setCoalesce(boolean)

setActionCommand

public void setActionCommand(String command)
Устанавливает строку, которая будет передана в качестве команды действия в событиях, запускаемых этим таймером. null является допустимым значением.
Параметры:
command - команда действия
С тех пор:
1.6

getActionCommand

public String getActionCommand()
Возвращает строку, которая будет передана в качестве команды действия в событиях, запускаемых этим таймером. Может быть null, что является значением по умолчанию.
Возвращает:
команда действия, используемая при запуске событий
С тех пор:
1.6

Запуск

public void start()
Запускает Timer, вызывая отправку событий действия его слушателям.
См. также:
  • stop()

isRunning

public boolean isRunning()
Возвращает true, если Timer работает.
Возвращает:
true, если Timer работает, false в противном случае
См. также:
  • start()

Остановка

public void stop()
Останавливает Timer, прекращая отправку событий действия его слушателям.
См. также:
  • start()

Перезапуск

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

© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/Timer.html

Spec-Zone.ru

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