|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class EventQueue extends Object
EventQueue независимый от платформы class что события очередей, и от базовых равноправных классов и от доверяемых классов приложений. Это инкапсулирует асинхронное событие, диспетчеризируют машину, которая извлекает события из очереди и диспетчеризирует их, вызывая 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 nullpublic AWTEvent getNextEvent() throws InterruptedException
EventQueue и возвраты это. Этот метод блокирует, пока событие не было отправлено другим потоком.AWTEventInterruptedException - если какой-либо поток прервал этот поток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 nullpublic static long getMostRecentEventTime()
EventQueue связанный с вызывающим потоком. Если событие с меткой времени будет в настоящий момент диспетчеризировано, то ее метка времени будет возвращена. Если никакие события еще не были диспетчеризированы, время инициализации EventQueue будет возвращено вместо этого. В текущей версии JDK, только InputEvents, ActionEvents, и 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 nullpop()protected void pop()
throws EmptyStackException
EventQueue. Любые события на ожидании передаются предыдущему EventQueue для того, чтобы обработать. Предупреждение: Чтобы избежать мертвой блокировки, не объявляйте этот метод, синхронизируемый в подклассе.
EmptyStackException - если никакое предыдущее нажатие не было сделано на этом EventQueuepush(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 EventQueueinvokeAndWait(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 EventQueueInterruptedException - если какой-либо поток прервал этот потокInvocationTargetException - если throwable бросается, работая runnableinvokeLater(java.lang.Runnable), Toolkit.getSystemEventQueue(), isDispatchThread()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92