java.awt.event

## Class FocusEvent

- java.lang.Object
- - java.util.EventObject
  - - java.awt.AWTEvent
    - - java.awt.event.ComponentEvent
      - - java.awt.event.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.

Since:
  1.1
See Also:
  `FocusAdapter`, `FocusListener`, Tutorial: Writing a Focus Listener, Serialized Form

### Field Summary

Fields
`static int` `FOCUS_FIRST` The first number in the range of ids used for focus events.
`static int` `FOCUS_GAINED` This event indicates that the Component is now the focus owner.
`static int` `FOCUS_LAST` The last number in the range of ids used for focus events.
`static int` `FOCUS_LOST` This event indicates that the Component is no longer the focus owner.

### Fields inherited from class java.awt.event.ComponentEvent

`COMPONENT_FIRST, COMPONENT_HIDDEN, COMPONENT_LAST, COMPONENT_MOVED, COMPONENT_RESIZED, COMPONENT_SHOWN`

### Fields inherited from class java.awt.AWTEvent

`ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK, HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id, INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX, TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASK`

### Fields inherited from class java.util.EventObject

`source`

### Constructor Summary

Constructors
Constructor and Description
`FocusEvent(Component source, int id)` Constructs a `FocusEvent` object and identifies it as a permanent change in focus.
`FocusEvent(Component source, int id, boolean temporary)` Constructs a `FocusEvent` object and identifies whether or not the change is temporary.
`FocusEvent(Component source, int id, boolean temporary, Component opposite)` Constructs a `FocusEvent` object with the specified temporary state and opposite `Component`.

### Method Summary

Methods
`Component` `getOppositeComponent()` Returns the other Component involved in this focus change.
`boolean` `isTemporary()` Identifies the focus change event as temporary or permanent.
`String` `paramString()` Returns a parameter string identifying this event.

### Methods inherited from class java.awt.event.ComponentEvent

`getComponent`

### Methods inherited from class java.awt.AWTEvent

`consume, getID, isConsumed, setSource, toString`

### Methods inherited from class java.util.EventObject

`getSource`

### Methods inherited from class java.lang.Object

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

### Field Detail

#### 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 Detail

#### FocusEvent

    public FocusEvent(Component source,
              int id,
              boolean temporary,
              Component opposite)

Constructs a `FocusEvent` object with the specified temporary state and opposite `Component`. 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`.

Note that passing in an invalid `id` results in unspecified behavior. This method throws an `IllegalArgumentException` if `source` is `null`.

Parameters:
  `source` - the `Component` that originated the event
  `id` - `FOCUS_GAINED` or `FOCUS_LOST`
  `temporary` - `true` if the focus change is temporary; `false` otherwise
  `opposite` - the other Component involved in the focus change, or `null`
Throws:
  `IllegalArgumentException` - if `source` is null
Since:
  1.4

#### FocusEvent

    public FocusEvent(Component source,
              int id,
              boolean temporary)

Constructs a `FocusEvent` object and identifies whether or not the change is temporary.

Note that passing in an invalid `id` results in unspecified behavior. 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
  `temporary` - `true` if the focus change is temporary; `false` otherwise
Throws:
  `IllegalArgumentException` - if `source` is null

#### FocusEvent

    public FocusEvent(Component source,
              int id)

Constructs a `FocusEvent` object and identifies it as a permanent change in focus.

Note that passing in an invalid `id` results in unspecified behavior. 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
Throws:
  `IllegalArgumentException` - if `source` is null

### Method Detail

#### 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

Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved.