Spec-Zone.ru › OpenJDK 17

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

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

setLogTimers

public static void setLogTimers(boolean flag)
Включает или выключает журнал таймера. При включении сообщение публикуется в System.out всякий раз, когда таймер срабатывает.
Параметры:
flag - значение для включения ведения журнала
См. также:
  • 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)
Устанавливает, будет ли таймер объединять несколько ожидающих событий срабатывания. Занятое приложение может не успевать за генерацией событий таймера, что приводит к очереди нескольких событий действия. При обработке приложение отправляет эти события одно за другим, что заставляет слушателей таймера получать последовательность событий без задержки между ними. Объединение событий предотвращает эту ситуацию, уменьшая несколько ожидающих событий до одного. Timer объединяют события по умолчанию.
Параметры:
flag - указывает false чтобы отключить объединение

isCoalesce

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

setActionCommand

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

getActionCommand

public String getActionCommand()
Возвращает строку, которая будет передаваться в качестве команды действия в ActionEvent, генерируемых этим таймером. Может быть null, что также является значением по умолчанию.
Возвращает:
используемая команда действия при генерации событий
Since:
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, 2021, 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/17/docs/api/java.desktop/javax/swing/Timer.html

Spec-Zone.ru

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