# Class EventQueueMonitor

java.lang.Object
com.sun.java.accessibility.util.EventQueueMonitor

All Implemented Interfaces:
  `AWTEventListener, EventListener`

public class EventQueueMonitor extends Object implements AWTEventListener
The `EventQueueMonitor` class provides key core functionality for Assistive Technologies (and other system-level technologies that need some of the same things that Assistive Technology needs).

See Also:
  - `AWTEventMonitor`
  - `SwingEventMonitor`

## Constructor Summary

Constructors
Constructor
Description
`EventQueueMonitor()`
Create a new `EventQueueMonitor` instance.

## Method Summary

Modifier and Type
Method
Description
`static void`
`addGUIInitializedListener(GUIInitializedListener l)`
Adds the specified listener to be notified when the GUI subsystem is initialized.
`static void`
`addTopLevelWindowListener(TopLevelWindowListener l)`
Adds the specified listener to be notified when a top level window is created or destroyed.
`void`
`eventDispatched(AWTEvent theEvent)`
Handle events as a result of registering a listener on the `EventQueue` in `maybeInitialize()`.
`static Accessible`
`getAccessibleAt(Point p)`
Obtain the `Accessible` object at the given point on the Screen.
`static Point`
`getCurrentMousePosition()`
Return the last recorded position of the mouse in screen coordinates.
`static Window[]`
`getTopLevelWindows()`
Return the list of top level Windows in use in the Java Virtual Machine.
`static Window`
`getTopLevelWindowWithFocus()`
Return the top level `Window` that currently has keyboard focus.
`static boolean`
`isGUIInitialized()`
Says whether the GUI subsystem has been initialized or not.
`static void`
`maybeInitialize()`
Tell the `EventQueueMonitor` to start listening for events.
`static void`
`removeGUIInitializedListener(GUIInitializedListener l)`
Removes the specified listener to be notified when the GUI subsystem is initialized.
`static void`
`removeTopLevelWindowListener(TopLevelWindowListener l)`
Removes the specified listener to be notified when a top level window is created or destroyed.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Constructor Details

### EventQueueMonitor

public EventQueueMonitor()
Create a new `EventQueueMonitor` instance. Normally, this will be called only by the AWT Toolkit during initialization time. Assistive technologies should not create instances of EventQueueMonitor by themselves. Instead, they should either refer to it directly via the static methods in this class, e.g., `getCurrentMousePosition()` or obtain the instance by asking the Toolkit, e.g., `Toolkit.getSystemEventQueue()`.

## Method Details

### maybeInitialize

public static void maybeInitialize()
Tell the `EventQueueMonitor` to start listening for events.

### eventDispatched

public void eventDispatched(AWTEvent theEvent)
Handle events as a result of registering a listener on the `EventQueue` in `maybeInitialize()`.

Specified by:
  `eventDispatched` in interface `AWTEventListener`
Parameters:
  `theEvent` - the event to be processed

### getAccessibleAt

public static Accessible getAccessibleAt(Point p)
Obtain the `Accessible` object at the given point on the Screen. The return value may be null if an `Accessible` object cannot be found at the particular point.

Parameters:
  `p` - the point to be accessed
Returns:
  the `Accessible` at the specified point

### isGUIInitialized

public static boolean isGUIInitialized()
Says whether the GUI subsystem has been initialized or not. If this returns true, the assistive technology can freely create GUI component instances. If the return value is false, the assistive technology should register a `GUIInitializedListener` and wait to create GUI component instances until the listener is called.

Returns:
  true if the GUI subsystem has been initialized
See Also:
  - `addGUIInitializedListener(GUIInitializedListener)`

### addGUIInitializedListener

public static void addGUIInitializedListener(GUIInitializedListener l)
Adds the specified listener to be notified when the GUI subsystem is initialized. Assistive technologies should get the results of `isGUIInitialized()` before calling this method.

Parameters:
  `l` - the listener to add
See Also:
  - `isGUIInitialized()`
  - `removeTopLevelWindowListener(TopLevelWindowListener)`

### removeGUIInitializedListener

public static void removeGUIInitializedListener(GUIInitializedListener l)
Removes the specified listener to be notified when the GUI subsystem is initialized.

Parameters:
  `l` - the listener to remove
See Also:
  - `addGUIInitializedListener(GUIInitializedListener)`

### addTopLevelWindowListener

public static void addTopLevelWindowListener(TopLevelWindowListener l)
Adds the specified listener to be notified when a top level window is created or destroyed.

Parameters:
  `l` - the listener to add
See Also:
  - `removeTopLevelWindowListener(TopLevelWindowListener)`

### removeTopLevelWindowListener

public static void removeTopLevelWindowListener(TopLevelWindowListener l)
Removes the specified listener to be notified when a top level window is created or destroyed.

Parameters:
  `l` - the listener to remove
See Also:
  - `addTopLevelWindowListener(TopLevelWindowListener)`

### getCurrentMousePosition

public static Point getCurrentMousePosition()
Return the last recorded position of the mouse in screen coordinates.

Returns:
  the last recorded position of the mouse in screen coordinates

### getTopLevelWindows

public static Window[] getTopLevelWindows()
Return the list of top level Windows in use in the Java Virtual Machine.

Returns:
  an array of top level `Window`s in use in the Java Virtual Machine

### getTopLevelWindowWithFocus

public static Window getTopLevelWindowWithFocus()
Return the top level `Window` that currently has keyboard focus.

Returns:
  the top level `Window` that currently has keyboard focus