A low-level event which indicates that a Component has gained or lost the input focus. This low-level event is generated by a Component (such as a TextField). The event is passed to every
FocusListener
or
FocusAdapter
object which registered to receive such events using the Component's
addFocusListener
method. (
FocusAdapter
objects implement the
FocusListener
interface.) Each such listener object gets this
FocusEvent
when the event occurs.
There are two levels of focus events: permanent and temporary. Permanent focus change events occur when focus is directly moved from one Component to another, such as through a call to requestFocus() or as the user uses the TAB key to traverse Components. Temporary focus change events occur when focus is temporarily lost for a Component as the indirect result of another operation, such as Window deactivation or a Scrollbar drag. In this case, the original focus state will automatically be restored once that operation is finished, or, for the case of Window deactivation, when the Window is reactivated. Both permanent and temporary focus events are delivered using the FOCUS_GAINED and FOCUS_LOST event ids; the level may be distinguished in the event using the isTemporary() method.
Every FocusEvent
records its cause - the reason why this event was generated. The cause is assigned during the focus event creation and may be retrieved by calling getCause()
.
An unspecified behavior will be caused if the id
parameter of any particular FocusEvent
instance is not in the range from FOCUS_FIRST
to FOCUS_LAST
.