Spec-Zone.ru › OpenJDK 21

Класс EventQueue

java.lang.Object
java.awt.EventQueue
public class EventQueue extends Object
EventQueue — это платформонезависимый класс, который упорядочивает события, как из базовых классов-виртуальных машин, так и из надёжных классов-приложений.

Он инкапсулирует асинхронную машину обработки событий, которая извлекает события из очереди и отправляет их, вызывая метод dispatchEvent(AWTEvent) на этом EventQueue с событием для отправки в качестве аргумента. Конкретное поведение этой машины зависит от реализации. Единственные требования заключаются в том, что события, которые фактически были помещены в эту очередь (обратите внимание, что события, опубликованные в EventQueue, могут быть объединены), отправляются:

Последовательно.
То есть, не допускается, чтобы несколько событий из этой очереди отправлялись одновременно.
В том же порядке, в котором они были помещены в очередь.
То есть, если AWTEvent A было помещено в EventQueue перед AWTEvent B, то событие B не будет отправлено перед событием A.

Некоторые браузеры разделяют апплеты в разных базах кода на отдельные контексты и устанавливают барьеры между этими контекстами. В такой ситуации будет по одному EventQueue на каждый контекст. Другие браузеры помещают все апплеты в один контекст, что подразумевает, что будет только одна глобальная EventQueue для всех апплетов. Это поведение зависит от реализации. Для получения дополнительной информации обратитесь к документации вашего браузера.

Сведения о проблемах с потоками в механизме обработки событий см. в Проблемах потоков AWT.

С тех пор:
1.1

Краткое описание конструкторов

Конструктор Описание
EventQueue()
Инициализирует новый экземпляр 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)
Принудительно вызывает метод runnable в run потоке dispatch thread в the system EventQueue.
static void invokeLater(Runnable runnable)
Принудительно вызывает метод runnable в run потоке dispatch thread в the system EventQueue.
static boolean isDispatchThread()
Возвращает true, если вызывающий поток является потоком обработки событий the current AWT EventQueue.
AWTEvent peekEvent()
Возвращает первое событие в очереди EventQueue без его удаления.
AWTEvent peekEvent(int id)
Возвращает первое событие с указанным идентификатором, если таковое имеется.
protected void pop()
Останавливает отправку событий с помощью этого EventQueue.
void postEvent(AWTEvent theEvent)
Опубликовывает событие типа 1.1 в EventQueue.
void push(EventQueue newEventQueue)
Заменяет существующий EventQueue указанным.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

EventQueue

public EventQueue()
Инициализирует новый экземпляр EventQueue.

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

postEvent

public void postEvent(AWTEvent theEvent)
Отправляет событие в стиле 1.1 в EventQueue. Если в очереди уже есть событие с тем же идентификатором и источником, вызывается метод Component источника coalesceEvents.
Параметры:
theEvent - экземпляр java.awt.AWTEvent, или его подкласс
Исключения:
NullPointerException - если theEvent является null

getNextEvent

public AWTEvent getNextEvent() throws InterruptedException
Удаляет событие из EventQueue и возвращает его. Этот метод будет заблокирован до тех пор, пока другое потоку не отправит событие.
Возвращает:
следующее AWTEvent
Исключения:
InterruptedException - если любой поток прервал этот поток

peekEvent

public AWTEvent peekEvent()
Возвращает первое событие в EventQueue без удаления его.
Возвращает:
первое событие

peekEvent

public AWTEvent peekEvent(int id)
Возвращает первое событие с указанным идентификатором, если оно есть.
Параметры:
id - идентификатор искомого типа события
Возвращает:
первое событие с указанным идентификатором или null , если такое событие отсутствует

dispatchEvent

protected void dispatchEvent(AWTEvent event)
Обрабатывает событие. Способ обработки события зависит от типа события и типа объекта-источника события:
Типы событий, типы источников и методы обработки
Тип события Тип источника Обработано в
ActiveEvent Любой event.dispatch()
Другое Компонент source.dispatchEvent(AWTEvent)
Другое MenuComponent source.dispatchEvent(AWTEvent)
Другое Другое Нет действия (игнорируется)
Параметры:
event - экземпляр java.awt.AWTEvent, или его подкласс
Исключения:
NullPointerException - если event является null
С:
1.2

getMostRecentEventTime

public static long getMostRecentEventTime()
Возвращает метку времени последнего события, имеющего метку времени, и которое было обработано EventQueue , связанным с вызывающим потоком. Если в настоящее время обрабатывается событие с меткой времени, будет возвращена его метка времени. Если события еще не обрабатывались, будет возвращена метка времени инициализации EventQueue.В текущей версии JDK метки времени имеют только InputEvent , ActionEvent и InvocationEvent; однако в будущих версиях JDK метки времени могут быть добавлены к другим типам событий. Обратите внимание, что этот метод должен вызываться только из приложения в потоке обработки событий event dispatching thread. Если этот метод вызывается из другого потока, вместо этого будет возвращено текущее системное время (как сообщается System.currentTimeMillis()).
Возвращает:
метку времени последнего обработанного InputEvent, ActionEvent, или InvocationEvent, или System.currentTimeMillis() если этот метод вызывается в потоке, отличном от потока обработки событий
С:
1.4
См. также:
  • InputEvent.getWhen()
  • ActionEvent.getWhen()
  • InvocationEvent.getWhen()
  • isDispatchThread()

getCurrentEvent

public static AWTEvent getCurrentEvent()
Возвращает событие, в настоящее время обрабатываемое EventQueue , связанным с вызывающим потоком. Это полезно, если методу нужен доступ к событию, но он не был разработан для получения ссылки на него в качестве аргумента. Обратите внимание, что этот метод должен вызываться только из потока обработки событий приложения. Если этот метод вызывается из другого потока, возвращается null.
Возвращает:
текущее обрабатываемое событие или null, если этот метод вызывается из потока, отличного от потока обработки событий
С:
1.4

push

public void push(EventQueue newEventQueue)
Заменяет существующую EventQueue указанной. Все ожидающие события передаются новой EventQueue для обработки.
Параметры:
newEventQueue - экземпляр EventQueue (или его подкласс)
Исключения:
NullPointerException - если newEventQueue является null
С:
1.2
См. также:
  • pop()

pop

protected void pop() throws EmptyStackException
Останавливает обработку событий с использованием этой EventQueue. Все ожидающие события передаются предыдущей EventQueue для обработки.

Предупреждение: Чтобы избежать тупиковой ситуации, не объявляйте этот метод синхронизированным в подклассе.

Исключения:
EmptyStackException - если для этой EventQueue не было предыдущего вызова push
С:
1.2
См. также:
  • push(java.awt.EventQueue)

createSecondaryLoop

public SecondaryLoop createSecondaryLoop()
Создает новый secondary loop , связанный с этой очередью событий. Используйте методы SecondaryLoop.enter() и SecondaryLoop.exit() для запуска и остановки цикла событий и обработки событий из этой очереди.
Возвращает:
secondaryLoop Новый объект вторичного цикла, который можно использовать для запуска нового вложенного цикла событий и обработки событий из этой очереди
С:
1.7
См. также:
  • SecondaryLoop.enter()
  • SecondaryLoop.exit()

isDispatchThread

public static boolean isDispatchThread()
Возвращает true, если вызывающий поток является потоком обработки событий the current AWT EventQueue. Используйте этот метод, чтобы убедиться, что конкретная задача выполняется (или не выполняется) там.

Примечание: используйте методы invokeLater(java.lang.Runnable) или invokeAndWait(java.lang.Runnable) для выполнения задачи в потоке обработки событий the current AWT EventQueue.

Возвращает:
true, если выполняется в потоке обработки событий the current AWT EventQueue
С:
1.2
См. также:
  • invokeLater(java.lang.Runnable)
  • invokeAndWait(java.lang.Runnable)
  • Toolkit.getSystemEventQueue()

invokeLater

public static void invokeLater(Runnable runnable)
Вызывает runnable метод run в потоке обработки событий dispatch thread the system EventQueue. Это произойдет после обработки всех ожидающих событий.
Параметры:
runnable - Runnable , чьего метода run должно быть выполнено асинхронно в потоке обработки событий event dispatch thread the system EventQueue
С:
1.2
См. также:
  • invokeAndWait(java.lang.Runnable)
  • Toolkit.getSystemEventQueue()
  • isDispatchThread()

invokeAndWait

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 - если при выполнении runnable выбрасывается исключение
С:
1.2
См. также:
  • invokeLater(java.lang.Runnable)
  • Toolkit.getSystemEventQueue()
  • isDispatchThread()

© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/EventQueue.html

Spec-Zone.ru

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