Spec-Zone .ru
спецификации, руководства, описания, API
|
public class EventQueue extends Object
EventQueue
независимый от платформы класс что события очередей, и от базовых равноправных классов и от доверяемых классов приложений. Это инкапсулирует асинхронное событие, диспетчеризируют машину, которая извлекает события из очереди и диспетчеризирует их, вызывая dispatchEvent(AWTEvent)
метод на этом EventQueue
с событием, которое будет диспетчеризировано как параметр. Определенное поведение этой машины является зависящим от реализации. Единственные требования - то, что события, которые фактически ставились в очередь этой очереди (отмечают что события, отправляемые на EventQueue
может быть объединен), диспетчеризируются:
AWTEvent
A ставится в очередь к EventQueue
прежде AWTEvent
B тогда событие B не будет диспетчеризировано перед событием A. Некоторые апплеты раздела браузеров в различных кодовых базах в отдельные контексты, и устанавливают стены между этими контекстами. В таком сценарии будет тот EventQueue
на контекст. Другие браузеры помещают все апплеты в тот же самый контекст, подразумевая, что будет только сингл, глобальный EventQueue
для всех апплетов. Это поведение является зависящим от реализации. Консультируйтесь с документацией своего браузера для получения дополнительной информации.
Для получения информации о проблемах поточной обработки события диспетчеризируйте машину, видьте, что AWT Распараллеливает Проблемы.
Конструктор и Описание |
---|
EventQueue() |
Модификатор и Тип | Метод и Описание |
---|---|
SecondaryLoop |
createSecondaryLoop()
Создает новое
secondary loop связанный с этой очередью событий. |
protected void |
dispatchEvent(AWTEvent event)
Диспетчеризирует событие.
|
static AWTEvent |
getCurrentEvent()
Возвращает событие, в настоящий момент диспетчеризируемое
EventQueue связанный с вызывающим потоком. |
static long |
getMostRecentEventTime()
Возвращает метку времени нового события, у которого была метка времени, и это было диспетчеризировано от
EventQueue связанный с вызывающим потоком. |
AWTEvent |
getNextEvent()
Удаляет событие из
EventQueue и возвраты это. |
static void |
invokeAndWait(Runnable runnable)
|
static void |
invokeLater(Runnable runnable)
|
static boolean |
isDispatchThread()
Возвращает true, если вызывающий поток
the current AWT EventQueue 's диспетчеризируют поток. |
AWTEvent |
peekEvent()
Возвращает первое событие на
EventQueue не удаляя это. |
AWTEvent |
peekEvent(int id)
Возвращает первое событие с указанным идентификатором, если любой.
|
protected void |
pop()
События диспетчеризации остановок, используя это
EventQueue . |
void |
postEvent(AWTEvent theEvent)
Отправляет событие с 1.1 стилями на
EventQueue . |
void |
push(EventQueue newEventQueue)
Заменяет существующее
EventQueue с указанным. |
public void postEvent(AWTEvent theEvent)
EventQueue
. Если есть существующее событие на очереди с тем же самым ID и источником события, источником Component
's coalesceEvents
метод вызовут.theEvent
- экземпляр java.awt.AWTEvent
, или подкласс этогоNullPointerException
- если theEvent
null
public AWTEvent getNextEvent() throws InterruptedException
EventQueue
и возвраты это. Этот метод блокирует, пока событие не было отправлено другим потоком.AWTEvent
InterruptedException
- если какой-либо поток прервал этот потокpublic AWTEvent peekEvent()
EventQueue
не удаляя это.public AWTEvent peekEvent(int id)
id
- идентификатор типа события требуетсяnull
если нет такого событияprotected void dispatchEvent(AWTEvent event)
Тип события | Исходный Тип | Диспетчеризированный |
---|---|---|
ActiveEvent | Любой | event.dispatch () |
Другой | Компонент | source.dispatchEvent (AWTEvent) |
Другой | MenuComponent | source.dispatchEvent (AWTEvent) |
Другой | Другой | Никакое действие не (проигнорировано) |
event
- экземпляр java.awt.AWTEvent
, или подкласс этогоNullPointerException
- если event
null
public static long getMostRecentEventTime()
EventQueue
связанный с вызывающим потоком. Если событие с меткой времени будет в настоящий момент диспетчеризировано, то ее метка времени будет возвращена. Если никакие события еще не были диспетчеризированы, время инициализации EventQueue будет возвращено вместо этого. В текущей версии JDK, только InputEvent
s, ActionEvent
s, и InvocationEvent
у s есть метки времени; однако, будущие версии JDK могут добавить метки времени к дополнительным типам события. Отметьте, что этот метод должен только быть вызван из приложения event dispatching thread
. Если этот метод вызывается от другого потока, время существующей системы (как сообщающийся System.currentTimeMillis()
) будет возвращен вместо этого.InputEvent
, ActionEvent
, или InvocationEvent
быть диспетчеризированным, или System.currentTimeMillis()
если этот метод вызывается на поток кроме потока диспетчеризации событияInputEvent.getWhen()
, ActionEvent.getWhen()
, InvocationEvent.getWhen()
, isDispatchThread()
public static AWTEvent getCurrentEvent()
EventQueue
связанный с вызывающим потоком. Это полезно, если метод нуждается в доступе к событию, но не был разработан, чтобы получить ссылку на это как параметр. Отметьте, что этот метод должен только быть вызван от потока диспетчеризации события приложения. Если этот метод будет вызван от другого потока, то нуль будет возвращен.public void push(EventQueue newEventQueue)
EventQueue
с указанным. Любые события на ожидании передаются новому EventQueue
для того, чтобы обработать этим.newEventQueue
- EventQueue
(или подкласс этого) экземпляр, чтобы быть использованиемNullPointerException
- если newEventQueue
null
pop()
protected void pop() throws EmptyStackException
EventQueue
. Любые события на ожидании передаются предыдущему EventQueue
для того, чтобы обработать. Предупреждение: Чтобы избежать мертвой блокировки, не объявляйте этот метод, синхронизируемый в подклассе.
EmptyStackException
- если никакое предыдущее нажатие не было сделано на этом EventQueue
push(java.awt.EventQueue)
public SecondaryLoop createSecondaryLoop()
secondary loop
связанный с этой очередью событий. Используйте SecondaryLoop.enter()
и SecondaryLoop.exit()
методы, чтобы запуститься и остановить цикл события и диспетчеризировать события от этой очереди.SecondaryLoop.enter()
, SecondaryLoop.exit()
public static boolean isDispatchThread()
the current AWT EventQueue
's диспетчеризируют поток. Используйте этот метод, чтобы гарантировать, что определенная задача выполняется (или не бывшей) там. Отметьте: используйте invokeLater(java.lang.Runnable)
или invokeAndWait(java.lang.Runnable)
методы, чтобы выполнить задачу в the current AWT EventQueue
's диспетчеризируют поток.
the current AWT EventQueue
's диспетчеризируют потокinvokeLater(java.lang.Runnable)
, invokeAndWait(java.lang.Runnable)
, Toolkit.getSystemEventQueue()
public static void invokeLater(Runnable runnable)
runnable
иметь run
метод, призванный dispatch thread
из the system EventQueue
. Это произойдет после того, как все события на ожидании обрабатываются.runnable
- Runnable
чей run
метод должен быть выполнен асинхронно в event dispatch thread
из the system EventQueue
invokeAndWait(java.lang.Runnable)
, Toolkit.getSystemEventQueue()
, isDispatchThread()
public static void invokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException
runnable
иметь run
метод, призванный dispatch thread
из the system EventQueue
. Это произойдет после того, как все события на ожидании обрабатываются. Блоки вызова, пока это не произошло. Этот метод бросит Ошибку если вызвано от event dispatcher thread
.runnable
- Runnable
чей run
метод должен быть выполнен синхронно в event dispatch thread
из the system EventQueue
InterruptedException
- если какой-либо поток прервал этот потокInvocationTargetException
- если throwable бросается, работая runnable
invokeLater(java.lang.Runnable)
, Toolkit.getSystemEventQueue()
, isDispatchThread()
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.