Spec-Zone.ru › OpenJDK 24

Класс 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
Коллекция зарегистрированных слушателей

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

Timer

public Timer(int delay, ActionListener listener)
Создаёт таймер и инициализирует начальную задержку и задержку между событиями в delay миллисекундах. Если 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)
Возвращает массив всех объектов, зарегистрированных в качестве обработчиков событий данного таймера. Обработчики регистрируются с помощью метода 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 - значение для включения логирования
См. также:
  • 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 - значение для остановки таймера после отправки первого события

isRepeats

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

setCoalesce

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

isCoalesce

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

УстановитьКомандуДействия

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

ПолучитьКомандуДействия

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

Запустить

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

Работает

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

Остановить

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

Перезапустить

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

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/Timer.html

Spec-Zone.ru

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