| public boolean grabFocus() Grabs focus on this window.
All mouse clicks that occur in this window's client area or client-areas
of any of its unfocusable owned windows are delivered as usual. Whenever
a click occurs on another app's window (not related via the ownership
relation with this one, or a focusable owned window), or on non-client
area of any window (titlebar, etc.), or any third-party app's window, or
native OS GUI (e.g. a taskbar), the grab is automatically reset, and the
window that held the grab receives the FOCUS_UNGRAB event.
Note that for this functionality to work correctly, the window must have
a focus upon calling this method. All owned popup windows that should be
operable during the grabbed focus state (e.g. nested popup menus) must
be unfocusable (see setFocusable). Clicking a focusable owned
window will reset the grab due to a focus transfer.
The click that occurs in another window and causes resetting of the grab
may or may not be delivered to that other window depending on the native
OS behavior.
If any of the application's windows already holds the grab, it is reset
prior to grabbing the focus for this window. The method may be called
multiple times for one window. Subsequent calls do not affect the grab
status unless it is reset between the calls, in which case the focus
is grabbed again.
Note that grabbing the focus on an application window may prevent
delivering certain events to other applications until the grab is reset.
Therefore, if the application has finished showing popup windows based
on a user action (e.g. clicking a menu item), and doesn't require the
grab any more, it should call the ungrabFocus method. The
FOCUS_UNGRAB event signals that the grab has been reset.
A user event handler associated with a menu item must be invoked after
resetting the grab. Otherwise, if a developer debugs the application and
has installed a breakpoint in the event handler, the debugger may become
unoperable due to events blocking for other applications on some
platforms.
- Returns:boolean
true if the operation is successful
- Exceptions
- IllegalStateException:
- if the window isn't focused currently
|