public class Timer extends Object implements Serializable
ActionEvent
s в указанных интервалах. Использование в качестве примера является объектом анимации, который использует a Timer
как триггер для рисования его фреймов. Установка таймера включает создание a 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
s выполняют свое ожидающее использование единственного, совместно используемого потока (создаваемый первым Timer
объект, который выполняется), обработчики событий действия для Timer
s выполняются на другом потоке - диспетчеризирующий событие поток. Это означает что обработчики действия для Timer
s может безопасно выполнить операции на компонентах Swing. Однако, это также означает, что обработчики должны выполниться быстро, чтобы сохранить GUI быстро реагирующим.
В v 1.3, другом Timer
class был добавлен к платформе Java: java.util.Timer
. И это и javax.swing.Timer
обеспечьте ту же самую основную функциональность, но java.util.Timer
является более общим и имеет больше функций. javax.swing.Timer
имеет две функции, которые могут сделать немного легче использовать с GUI. Во-первых, его метафора обработки событий знакома программистам GUI и может сделать контакт с диспетчеризирующим событие потоком немного более простым. Во-вторых, его автоматическое совместное использование потока означает, что Вы не должны сделать специальные шаги, чтобы избежать порождать слишком много потоков. Вместо этого Ваш таймер использует тот же самый поток, используемый, чтобы заставить курсоры мигнуть, подсказки появляются и так далее.
Можно найти дальнейшую документацию и несколько примеров использования таймеров, посещаяTimer
class и java.util.Timer
, см.
Предупреждение: Сериализированные объекты этого class не будут совместимыми с будущими выпусками Swing. Текущая поддержка сериализации является подходящей для краткосрочного хранения или RMI между приложениями, выполняющими ту же самую версию Swing. С 1.4, поддержка длительного хранения всего JavaBeansTM была добавлена к java.beans
пакет. Пожалуйста, см. XMLEncoder
.
java.util.Timer
Модификатор и Тип | Поле и Описание |
---|---|
protected EventListenerList |
listenerList |
Конструктор и Описание |
---|
Timer(int delay, ActionListener listener)
Создает a
Timer и инициализирует и начальную задержку и задержку между событиями к delay миллисекунды. |
Модификатор и Тип | Метод и Описание |
---|---|
void |
addActionListener(ActionListener listener)
Добавляет слушатель действия
Timer . |
protected void |
fireActionPerformed(ActionEvent e)
Уведомляет всех слушателей, которые зарегистрировали интерес для уведомления на этом типе события.
|
Строка |
getActionCommand()
Возвращает строку, которая будет поставлена как команда действия в
ActionEvent s запущенный этим таймером. |
ActionListener[] |
getActionListeners()
Возвращает массив всех слушателей действия, зарегистрированных на этом таймере.
|
int |
getDelay()
Возвращает задержку, в миллисекундах, между взрывами событий действия.
|
int |
getInitialDelay()
Возвраты
Timer 's начальная задержка. |
<T extends EventListener> |
getListeners(Class<T> listenerType)
Возвращает массив всех объектов, в настоящий момент зарегистрированных как
FooListener s на это 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 s запущенный этим таймером. |
void |
setCoalesce(boolean flag)
Наборы, ли
Timer объединяет многократное ожидание ActionEvent взрывы. |
void |
setDelay(int delay)
Наборы
Timer 's между событиями задерживаются, число миллисекунд между последовательными событиями действия. |
void |
setInitialDelay(int initialDelay)
Наборы
Timer 's начальная задержка, время в миллисекундах, чтобы ожидать после того, как таймер запускается прежде, чем запустить первое событие. |
static void |
setLogTimers(boolean flag)
Включает или отключает журнал таймера.
|
void |
setRepeats(boolean flag)
Если
flag false , сообщает Timer отправить только одно событие действия его слушателям. |
void |
start()
Запускается
Timer , то, чтобы заставлять это начать отправлять события действия его слушателям. |
void |
stop()
Остановки
Timer , то, чтобы заставлять это прекратить отправлять события действия его слушателям. |
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)
public void addActionListener(ActionListener listener)
Timer
.listener
- слушатель, чтобы добавитьTimer(int, java.awt.event.ActionListener)
public void removeActionListener(ActionListener listener)
Timer
.listener
- слушатель, чтобы удалитьpublic ActionListener[] getActionListeners()
ActionListener
s или пустой массив, если никакие слушатели действия в настоящий момент не регистрируютсяaddActionListener(java.awt.event.ActionListener)
, removeActionListener(java.awt.event.ActionListener)
protected void fireActionPerformed(ActionEvent e)
e
- событие действия, чтобы стрелятьEventListenerList
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
FooListener
s на это Timer
. FooListener
s регистрируются, используя addFooListener
метод. Можно определить listenerType
параметр с литералом class, такой как FooListener.class
. Например, можно запросить a Timer
экземпляр t
для его слушателей действия со следующим кодом:
ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));Если никакие такие слушатели не существуют, этот метод возвращает пустой массив.
listenerType
- тип слушателей требуют; этот параметр должен определить интерфейс, который убывает от java.util.EventListener
FooListener
s на этом таймере, или пустом массиве, если никакие такие слушатели не были добавленыClassCastException
- если listenerType
не определяет class или интерфейс, который реализует java.util.EventListener
getActionListeners()
, addActionListener(java.awt.event.ActionListener)
, removeActionListener(java.awt.event.ActionListener)
public static void setLogTimers(boolean flag)
System.out
всякий раз, когда таймер уходит.flag
- true
позволять регистрироватьgetLogTimers()
public static boolean getLogTimers()
true
если журналирование включается.true
если журналирование включается; иначе, ложьsetLogTimers(boolean)
public void setDelay(int delay)
Timer
's между событиями задерживаются, число миллисекунд между последовательными событиями действия. Это не влияет на начальное свойство задержки, которое может быть установлено setInitialDelay
метод.delay
- задержка миллисекундsetInitialDelay(int)
public int getDelay()
setDelay(int)
, getInitialDelay()
public void setInitialDelay(int initialDelay)
Timer
's начальная задержка, время в миллисекундах, чтобы ожидать после того, как таймер запускается прежде, чем запустить первое событие. На конструкцию это устанавливается быть тем же самым как задержкой между событиями, но тогда ее значение независимо и остается незатронутым изменениями к задержке между событиями.initialDelay
- начальная задержка, в миллисекундахsetDelay(int)
public int getInitialDelay()
Timer
's начальная задержка.setInitialDelay(int)
, setDelay(int)
public void setRepeats(boolean flag)
flag
false
, сообщает Timer
отправить только одно событие действия его слушателям.flag
- определить false
заставить таймер остановиться после отправки его первого события действияpublic boolean isRepeats()
true
(значение по умолчанию), если Timer
отправит событие действия его слушателям многократно.setRepeats(boolean)
public void setCoalesce(boolean flag)
Timer
объединяет многократное ожидание ActionEvent
взрывы. Занятое приложение, возможно, не в состоянии не отставать от a Timer
's генерация события, заставляя многократные события действия быть поставленным в очередь. Когда обработано, приложение отправляет эти события один за другим, вызывая Timer
's слушатели, чтобы получить последовательность событий без задержки между ними. Объединение избегает этой ситуации, уменьшая многократные события на ожидании до единственного события. Timer
s объединяют события по умолчанию.flag
- определить false
выключить объединениеpublic boolean isCoalesce()
true
если Timer
объединяет многократные события действия на ожидании.setCoalesce(boolean)
public void setActionCommand(String command)
ActionEvent
s запущенный этим таймером. null
приемлемое значение.command
- команда действияpublic String getActionCommand()
ActionEvent
s запущенный этим таймером. Может быть null
, который является также значением по умолчанию.public void start()
Timer
, то, чтобы заставлять это начать отправлять события действия его слушателям.stop()
public boolean isRunning()
true
если Timer
работает.start()
public void stop()
Timer
, то, чтобы заставлять это прекратить отправлять события действия его слушателям.start()
public void restart()
Timer
, отмена любых взрывов на ожидании и то, чтобы заставлять это стрелять с его начальной задержкой.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92