Spec-Zone.ru › OpenJDK 27

Класс Timer

java.lang.Object
javax.swing.Timer
Все реализованные интерфейсы:
Serializable
public class Timer extends Object implements Serializable
Генерирует одно или несколько событий ActionEvents через заданные интервалы. Например, объект анимации может использовать 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).

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

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

Дополнительную документацию и несколько примеров использования таймеров можно найти в разделе Как использовать таймеры учебника The Java Tutorial.

Предупреждение: Сериализованные объекты этого класса несовместимы с будущими выпусками Swing. Текущая поддержка сериализации предназначена для кратковременного хранения или использования RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4 в пакете java.beans появилась поддержка долгосрочного хранения всех JavaBeans. См. 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()
Возвращает строку, которая будет передаваться в качестве команды действия в событиях ActionEvents, генерируемых этим таймером.
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)
Задаёт строку, которая будет передаваться в качестве команды действия в событиях ActionEvents, генерируемых этим таймером.
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, после чего он прекращает отправлять события действий своим прослушивателям.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект некоторому другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии.
Финализация объявлена устаревшей и планируется к удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание полей

listenerList

protected EventListenerList listenerList
Коллекция зарегистрированных прослушивателей

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

Timer

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

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

addActionListener

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

removeActionListener

public void removeActionListener(ActionListener listener)
Удаляет указанный прослушиватель действий из Timer.
Параметры:
listener — удаляемый прослушиватель

getActionListeners

public ActionListener[] getActionListeners()
Возвращает массив всех прослушивателей действий, зарегистрированных в этом таймере.
Возвращает:
все прослушиватели ActionListener этого таймера или пустой массив, если в данный момент не зарегистрирован ни один прослушиватель действий
Начиная с:
1.4
См. также:
  • addActionListener(ActionListener)
  • removeActionListener(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
Начиная с:
1.3
См. также:
  • getActionListeners()
  • addActionListener(ActionListener)
  • removeActionListener(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)
Задаёт интервал между событиями для объекта Timer — количество миллисекунд между последовательными событиями действий. Это не влияет на свойство начальной задержки, которое можно задать с помощью метода setInitialDelay.
Параметры:
delay — задержка в миллисекундах
См. также:
  • setInitialDelay(int)

getDelay

public int getDelay()
Возвращает интервал в миллисекундах между генерациями событий действий.
Возвращает:
интервал в миллисекундах между генерациями событий действий
См. также:
  • setDelay(int)
  • getInitialDelay()

setInitialDelay

public void setInitialDelay(int initialDelay)
Задаёт начальную задержку объекта Timer — время в миллисекундах, которое нужно выждать после запуска таймера перед генерацией первого события. При создании она устанавливается равной интервалу между событиями, однако затем её значение становится независимым и не меняется при изменении интервала между событиями.
Параметры:
initialDelay — начальная задержка в миллисекундах
См. также:
  • setDelay(int)

getInitialDelay

public int getInitialDelay()
Возвращает начальную задержку объекта Timer.
Возвращает:
начальную задержку объекта Timer в миллисекундах
См. также:
  • setInitialDelay(int)
  • setDelay(int)

setRepeats

public void setRepeats(boolean flag)
Если flag имеет значение false, указывает объекту Timer отправить своим прослушивателям только одно событие действия.
Параметры:
flag — укажите false, чтобы таймер остановился после отправки первого события действия

isRepeats

public boolean isRepeats()
Возвращает true (значение по умолчанию), если объект Timer будет отправлять своим прослушивателям события действий несколько раз.
Возвращает:
true, если объект Timer будет отправлять своим прослушивателям события действий несколько раз
См. также:
  • setRepeats(boolean)

setCoalesce

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

isCoalesce

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

setActionCommand

public void setActionCommand(String command)
Задаёт строку, которая будет передаваться в качестве команды действия в событиях ActionEvents, генерируемых этим таймером. Допустимое значение — null.
Параметры:
command — команда действия
Начиная с:
1.6

getActionCommand

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

start

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

isRunning

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

stop

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

restart

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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