Module java.desktop

Class FocusEvent

All Implemented Interfaces:
Serializable

public class FocusEvent
extends ComponentEvent
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.

Since:
1.1
See Also:
FocusAdapter, FocusListener, Tutorial: Writing a Focus Listener, Serialized Form
  • Field Details

    • FOCUS_FIRST

      public static final int FOCUS_FIRST
      The first number in the range of ids used for focus events.
      See Also:
      Constant Field Values
    • FOCUS_LAST

      public static final int FOCUS_LAST
      The last number in the range of ids used for focus events.
      See Also:
      Constant Field Values
    • FOCUS_GAINED

      public static final int FOCUS_GAINED
      This event indicates that the Component is now the focus owner.
      See Also:
      Constant Field Values
    • FOCUS_LOST

      public static final int FOCUS_LOST
      This event indicates that the Component is no longer the focus owner.
      See Also:
      Constant Field Values
  • Constructor Details

    • FocusEvent

      public FocusEvent​(Component source, int id, boolean temporary, Component opposite)
      Constructs a FocusEvent object with the specified temporary state, opposite Component and the Cause.UNKNOWN cause. The opposite Component is the other Component involved in this focus change. For a FOCUS_GAINED event, this is the Component that lost focus. For a FOCUS_LOST event, this is the Component that gained focus. If this focus change occurs with a native application, with a Java application in a different VM, or with no other Component, then the opposite Component is null.

      This method throws an IllegalArgumentException if source is null.

      Parameters:
      source - The Component that originated the event
      id - An integer indicating the type of event. For information on allowable values, see the class description for FocusEvent
      temporary - Equals true if the focus change is temporary; false otherwise
      opposite - The other Component involved in the focus change, or null
      Throws:
      IllegalArgumentException - if source equals null
      Since:
      1.4
      See Also:
      EventObject.getSource(), AWTEvent.getID(), isTemporary(), getOppositeComponent(), FocusEvent.Cause.UNKNOWN
    • FocusEvent

      public FocusEvent​(Component source, int id, boolean temporary, Component opposite, FocusEvent.Cause cause)
      Constructs a FocusEvent object with the specified temporary state, opposite Component and the cause. The opposite Component is the other Component involved in this focus change. For a FOCUS_GAINED event, this is the Component that lost focus. For a FOCUS_LOST event, this is the Component that gained focus. If this focus change occurs with a native application, with a Java application in a different VM, or with no other Component, then the opposite Component is null.

      This method throws an IllegalArgumentException if source or cause is null.

      Parameters:
      source - The Component that originated the event
      id - An integer indicating the type of event. For information on allowable values, see the class description for FocusEvent
      temporary - Equals true if the focus change is temporary; false otherwise
      opposite - The other Component involved in the focus change, or null
      cause - The focus event cause.
      Throws:
      IllegalArgumentException - if source equals null or if cause equals null
      Since:
      9
      See Also:
      EventObject.getSource(), AWTEvent.getID(), isTemporary(), getOppositeComponent(), FocusEvent.Cause
    • FocusEvent

      public FocusEvent​(Component source, int id, boolean temporary)
      Constructs a FocusEvent object and identifies whether or not the change is temporary.

      This method throws an IllegalArgumentException if source is null.

      Parameters:
      source - The Component that originated the event
      id - An integer indicating the type of event. For information on allowable values, see the class description for FocusEvent
      temporary - Equals true if the focus change is temporary; false otherwise
      Throws:
      IllegalArgumentException - if source equals null
      See Also:
      EventObject.getSource(), AWTEvent.getID(), isTemporary()
    • FocusEvent

      public FocusEvent​(Component source, int id)
      Constructs a FocusEvent object and identifies it as a permanent change in focus.

      This method throws an IllegalArgumentException if source is null.

      Parameters:
      source - The Component that originated the event
      id - An integer indicating the type of event. For information on allowable values, see the class description for FocusEvent
      Throws:
      IllegalArgumentException - if source equals null
      See Also:
      EventObject.getSource(), AWTEvent.getID()
  • Method Details

    • isTemporary

      public boolean isTemporary()
      Identifies the focus change event as temporary or permanent.
      Returns:
      true if the focus change is temporary; false otherwise
    • getOppositeComponent

      public Component getOppositeComponent()
      Returns the other Component involved in this focus change. For a FOCUS_GAINED event, this is the Component that lost focus. For a FOCUS_LOST event, this is the Component that gained focus. If this focus change occurs with a native application, with a Java application in a different VM or context, or with no other Component, then null is returned.
      Returns:
      the other Component involved in the focus change, or null
      Since:
      1.4
    • paramString

      public String paramString()
      Returns a parameter string identifying this event. This method is useful for event-logging and for debugging.
      Overrides:
      paramString in class ComponentEvent
      Returns:
      a string identifying the event and its attributes
    • getCause

      public final FocusEvent.Cause getCause()
      Returns the event cause.
      Returns:
      one of FocusEvent.Cause values
      Since:
      9