Класс 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
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected EventListenerList |
listenerList |
Коллекция зарегистрированных прослушивателей |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Timer |
Создаёт объект Timer и задаёт начальную задержку и интервал между событиями, равные delay миллисекундам. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addActionListener |
Добавляет прослушиватель действий в Timer. |
protected void |
fireActionPerformed |
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлению о событиях этого типа. |
String |
getActionCommand() |
Возвращает строку, которая будет передаваться в качестве команды действия в событиях ActionEvents, генерируемых этим таймером. |
ActionListener[] |
getActionListeners() |
Возвращает массив всех прослушивателей действий, зарегистрированных в этом таймере. |
int |
getDelay() |
Возвращает интервал в миллисекундах между генерациями событий действий. |
int |
getInitialDelay() |
Возвращает начальную задержку объекта Timer. |
<T extends EventListener> |
getListeners |
Возвращает массив всех объектов, зарегистрированных в данный момент в качестве прослушивателей FooListener для этого объекта Timer. |
static boolean |
getLogTimers() |
Возвращает true, если ведение журнала включено. |
boolean |
isCoalesce() |
Возвращает true, если объект Timer объединяет несколько ожидающих событий действий. |
boolean |
isRepeats() |
Возвращает true (значение по умолчанию), если объект Timer будет отправлять своим прослушивателям события действий несколько раз. |
boolean |
isRunning() |
Возвращает true, если объект Timer запущен. |
void |
removeActionListener |
Удаляет указанный прослушиватель действий из объекта Timer. |
void |
restart() |
Перезапускает объект Timer, отменяя все ожидающие срабатывания и задавая начальную задержку перед следующим срабатыванием. |
void |
setActionCommand |
Задаёт строку, которая будет передаваться в качестве команды действия в событиях ActionEvents, генерируемых этим таймером. |
void |
setCoalesce |
Задаёт, будет ли объект Timer объединять несколько ожидающих срабатываний ActionEvent. |
void |
setDelay |
Задаёт интервал между событиями для объекта Timer — количество миллисекунд между последовательными событиями действий. |
void |
setInitialDelay |
Задаёт начальную задержку объекта Timer — время в миллисекундах, которое нужно выждать после запуска таймера перед генерацией первого события. |
static void |
setLogTimers |
Включает или отключает журнал таймера. |
void |
setRepeats |
Если 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 |
Указывает, равен ли этот объект некоторому другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии. Финализация объявлена устаревшей и планируется к удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
listenerList
protected EventListenerList listenerList
Подробное описание конструкторов
Timer
public Timer(int delay, ActionListener listener)
Timer и задаёт начальную задержку и интервал между событиями, равные delay миллисекундам. Если значение delay меньше или равно нулю, таймер срабатывает сразу после запуска. Если listener не равно null, оно регистрируется в таймере в качестве прослушивателя действий.- Параметры:
-
delay— время в миллисекундах для начальной задержки и интервала между событиями -
listener— начальный прослушиватель; может бытьnull - См. также:
Подробное описание методов
addActionListener
public void addActionListener(ActionListener listener)
Timer.- Параметры:
-
listener— добавляемый прослушиватель - См. также:
removeActionListener
public void removeActionListener(ActionListener listener)
Timer.- Параметры:
-
listener— удаляемый прослушиватель
getActionListeners
public ActionListener[] getActionListeners()
- Возвращает:
- все прослушиватели
ActionListenerэтого таймера или пустой массив, если в данный момент не зарегистрирован ни один прослушиватель действий - Начиная с:
- 1.4
- См. также:
fireActionPerformed
protected void fireActionPerformed(ActionEvent e)
- Параметры:
-
e— генерируемое событие действия - См. также:
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
- См. также:
setLogTimers
public static void setLogTimers(boolean flag)
System.out выводится сообщение.- Параметры:
-
flag—trueдля включения ведения журнала - См. также:
getLogTimers
public static boolean getLogTimers()
true, если ведение журнала включено.- Возвращает:
-
true, если ведение журнала включено; в противном случае — false - См. также:
setDelay
public void setDelay(int delay)
Timer — количество миллисекунд между последовательными событиями действий. Это не влияет на свойство начальной задержки, которое можно задать с помощью метода setInitialDelay.- Параметры:
-
delay— задержка в миллисекундах - См. также:
getDelay
public int getDelay()
- Возвращает:
- интервал в миллисекундах между генерациями событий действий
- См. также:
setInitialDelay
public void setInitialDelay(int initialDelay)
Timer — время в миллисекундах, которое нужно выждать после запуска таймера перед генерацией первого события. При создании она устанавливается равной интервалу между событиями, однако затем её значение становится независимым и не меняется при изменении интервала между событиями.- Параметры:
-
initialDelay— начальная задержка в миллисекундах - См. также:
getInitialDelay
public int getInitialDelay()
Timer.- Возвращает:
- начальную задержку объекта
Timerв миллисекундах - См. также:
setRepeats
public void setRepeats(boolean flag)
flag имеет значение false, указывает объекту Timer отправить своим прослушивателям только одно событие действия.- Параметры:
-
flag— укажитеfalse, чтобы таймер остановился после отправки первого события действия
isRepeats
public boolean isRepeats()
true (значение по умолчанию), если объект Timer будет отправлять своим прослушивателям события действий несколько раз.- Возвращает:
- true, если объект
Timerбудет отправлять своим прослушивателям события действий несколько раз - См. также:
setCoalesce
public void setCoalesce(boolean flag)
Timer объединять несколько ожидающих срабатываний ActionEvent. Занятое приложение может не успевать обрабатывать генерацию событий объектом Timer, из-за чего в очередь могут попадать несколько событий действий. При обработке приложение отправляет эти события одно за другим, в результате чего прослушиватели объекта Timer получают последовательность событий без задержки между ними. Объединение позволяет избежать такой ситуации, сводя несколько ожидающих событий к одному. По умолчанию объекты Timers объединяют события.- Параметры:
-
flag— укажитеfalse, чтобы отключить объединение
isCoalesce
public boolean isCoalesce()
true, если объект Timer объединяет несколько ожидающих событий действий.- Возвращает:
- true, если объект
Timerобъединяет несколько ожидающих событий действий - См. также:
setActionCommand
public void setActionCommand(String command)
ActionEvents, генерируемых этим таймером. Допустимое значение — null.- Параметры:
-
command— команда действия - Начиная с:
- 1.6
getActionCommand
public String getActionCommand()
ActionEvents, генерируемых этим таймером. Может быть равна null, что также является значением по умолчанию.- Возвращает:
- команду действия, используемую при генерации событий
- Начиная с:
- 1.6
start
public void start()
Timer, после чего он начинает отправлять события действий своим прослушивателям.- См. также:
isRunning
public boolean isRunning()
true, если объект Timer запущен.- Возвращает:
- true, если объект
Timerзапущен; в противном случае — false - См. также:
stop
public void stop()
Timer, после чего он прекращает отправлять события действий своим прослушивателям.- См. также:
restart
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.