# Class WindowEvent

java.lang.Object
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ComponentEvent
java.awt.event.WindowEvent

All Implemented Interfaces:
  `Serializable`

public class WindowEvent extends ComponentEvent
A low-level event that indicates that a window has changed its status. This low-level event is generated by a Window object when it is opened, closed, activated, deactivated, iconified, or deiconified, or when focus is transferred into or out of the Window.

The event is passed to every `WindowListener` or `WindowAdapter` object which registered to receive such events using the window's `addWindowListener` method. (`WindowAdapter` objects implement the `WindowListener` interface.) Each such listener object gets this `WindowEvent` when the event occurs.

An unspecified behavior will be caused if the `id` parameter of any particular `WindowEvent` instance is not in the range from `WINDOW_FIRST` to `WINDOW_LAST`.

Since:
  1.1
See Also:
  - `WindowAdapter`
  - `WindowListener`
  - Tutorial: Writing a Window Listener
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `WINDOW_ACTIVATED`
  The window-activated event type.
  `static final int`
  `WINDOW_CLOSED`
  The window closed event.
  `static final int`
  `WINDOW_CLOSING`
  The "window is closing" event.
  `static final int`
  `WINDOW_DEACTIVATED`
  The window-deactivated event type.
  `static final int`
  `WINDOW_DEICONIFIED`
  The window deiconified event type.
  `static final int`
  `WINDOW_FIRST`
  The first number in the range of ids used for window events.
  `static final int`
  `WINDOW_GAINED_FOCUS`
  The window-gained-focus event type.
  `static final int`
  `WINDOW_ICONIFIED`
  The window iconified event.
  `static final int`
  `WINDOW_LAST`
  The last number in the range of ids used for window events.
  `static final int`
  `WINDOW_LOST_FOCUS`
  The window-lost-focus event type.
  `static final int`
  `WINDOW_OPENED`
  The window opened event.
  `static final int`
  `WINDOW_STATE_CHANGED`
  The window-state-changed event type.

  ### Fields declared in class ComponentEvent

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

  ### Fields declared in class 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 declared in class EventObject

  `source`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WindowEvent(Window source, int id)`
  Constructs a `WindowEvent` object.
  `WindowEvent(Window source, int id, int oldState, int newState)`
  Constructs a `WindowEvent` object with the specified previous and new window states.
  `WindowEvent(Window source, int id, Window opposite)`
  Constructs a `WindowEvent` object with the specified opposite `Window`.
  `WindowEvent(Window source, int id, Window opposite, int oldState, int newState)`
  Constructs a `WindowEvent` object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getNewState()`
  For `WINDOW_STATE_CHANGED` events returns the new state of the window.
  `int`
  `getOldState()`
  For `WINDOW_STATE_CHANGED` events returns the previous state of the window.
  `Window`
  `getOppositeWindow()`
  Returns the other Window involved in this focus or activation change.
  `Window`
  `getWindow()`
  Returns the originator of the event.
  `String`
  `paramString()`
  Returns a parameter string identifying this event.

  ### Methods declared in class ComponentEvent

  `getComponent`

  ### Methods declared in class AWTEvent

  `consume, getID, isConsumed, setSource, toString`

  ### Methods declared in class EventObject

  `getSource`

  ### Methods declared in class Object

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

- ## Field Details

  - ### WINDOW_FIRST

    public static final int WINDOW_FIRST
    The first number in the range of ids used for window events.
    See Also:
      - Constant Field Values

  - ### WINDOW_OPENED

    @Native public static final int WINDOW_OPENED
    The window opened event. This event is delivered only the first time a window is made visible.
    See Also:
      - Constant Field Values

  - ### WINDOW_CLOSING

    @Native public static final int WINDOW_CLOSING
    The "window is closing" event. This event is delivered when the user attempts to close the window from the window's system menu. If the program does not explicitly hide or dispose the window while processing this event, the window close operation will be cancelled.
    See Also:
      - Constant Field Values

  - ### WINDOW_CLOSED

    @Native public static final int WINDOW_CLOSED
    The window closed event. This event is delivered after the displayable window has been closed as the result of a call to dispose.
    See Also:
      - `Component.isDisplayable()`
      - `Window.dispose()`
      - Constant Field Values

  - ### WINDOW_ICONIFIED

    @Native public static final int WINDOW_ICONIFIED
    The window iconified event. This event is delivered when the window has been changed from a normal to a minimized state. For many platforms, a minimized window is displayed as the icon specified in the window's iconImage property.
    See Also:
      - `Window.setIconImage(Image)`
      - Constant Field Values

  - ### WINDOW_DEICONIFIED

    @Native public static final int WINDOW_DEICONIFIED
    The window deiconified event type. This event is delivered when the window has been changed from a minimized to a normal state.
    See Also:
      - Constant Field Values

  - ### WINDOW_ACTIVATED

    @Native public static final int WINDOW_ACTIVATED
    The window-activated event type. This event is delivered when the Window becomes the active Window. Only a Frame or a Dialog can be the active Window. The native windowing system may denote the active Window or its children with special decorations, such as a highlighted title bar. The active Window is always either the focused Window, or the first Frame or Dialog that is an owner of the focused Window.
    See Also:
      - Constant Field Values

  - ### WINDOW_DEACTIVATED

    @Native public static final int WINDOW_DEACTIVATED
    The window-deactivated event type. This event is delivered when the Window is no longer the active Window. Only a Frame or a Dialog can be the active Window. The native windowing system may denote the active Window or its children with special decorations, such as a highlighted title bar. The active Window is always either the focused Window, or the first Frame or Dialog that is an owner of the focused Window.
    See Also:
      - Constant Field Values

  - ### WINDOW_GAINED_FOCUS

    @Native public static final int WINDOW_GAINED_FOCUS
    The window-gained-focus event type. This event is delivered when the Window becomes the focused Window, which means that the Window, or one of its subcomponents, will receive keyboard events.
    See Also:
      - Constant Field Values

  - ### WINDOW_LOST_FOCUS

    @Native public static final int WINDOW_LOST_FOCUS
    The window-lost-focus event type. This event is delivered when a Window is no longer the focused Window, which means keyboard events will no longer be delivered to the Window or any of its subcomponents.
    See Also:
      - Constant Field Values

  - ### WINDOW_STATE_CHANGED

    @Native public static final int WINDOW_STATE_CHANGED
    The window-state-changed event type. This event is delivered when a Window's state is changed by virtue of it being iconified, maximized etc.
    Since:
      1.4
    See Also:
      - Constant Field Values

  - ### WINDOW_LAST

    public static final int WINDOW_LAST
    The last number in the range of ids used for window events.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### WindowEvent

    public WindowEvent(Window source, int id, Window opposite, int oldState, int newState)
    Constructs a `WindowEvent` object.

    This method throws an `IllegalArgumentException` if `source` is `null`.

    Parameters:
      `source` - The `Window` object that originated the event
      `id` - An integer indicating the type of event. For information on allowable values, see the class description for `WindowEvent`
      `opposite` - The other window involved in the focus or activation change, or `null`
      `oldState` - Previous state of the window for window state change event. See `#getOldState()` for allowable values
      `newState` - New state of the window for window state change event. See `#getNewState()` for allowable values
    Throws:
      `IllegalArgumentException` - if `source` is null
    Since:
      1.4
    See Also:
      - `getWindow()`
      - `AWTEvent.getID()`
      - `getOppositeWindow()`
      - `getOldState()`
      - `getNewState()`

  - ### WindowEvent

    public WindowEvent(Window source, int id, Window opposite)
    Constructs a `WindowEvent` object with the specified opposite `Window`. The opposite `Window` is the other `Window` involved in this focus or activation change. For a `WINDOW_ACTIVATED` or `WINDOW_GAINED_FOCUS` event, this is the `Window` that lost activation or focus. For a `WINDOW_DEACTIVATED` or `WINDOW_LOST_FOCUS` event, this is the `Window` that gained activation or focus. If this focus change occurs with a native application, with a Java application in a different VM, or with no other `Window`, then the opposite Window is `null`.

    This method throws an `IllegalArgumentException` if `source` is `null`.

    Parameters:
      `source` - The `Window` object that originated the event
      `id` - An integer indicating the type of event. For information on allowable values, see the class description for `WindowEvent`. It is expected that this constructor will not be used for other then `WINDOW_ACTIVATED`,`WINDOW_DEACTIVATED`, `WINDOW_GAINED_FOCUS`, or `WINDOW_LOST_FOCUS`. `WindowEvent` types, because the opposite `Window` of other event types will always be `null`.
      `opposite` - The other `Window` involved in the focus or activation change, or `null`
    Throws:
      `IllegalArgumentException` - if `source` is null
    Since:
      1.4
    See Also:
      - `getWindow()`
      - `AWTEvent.getID()`
      - `getOppositeWindow()`

  - ### WindowEvent

    public WindowEvent(Window source, int id, int oldState, int newState)
    Constructs a `WindowEvent` object with the specified previous and new window states.

    This method throws an `IllegalArgumentException` if `source` is `null`.

    Parameters:
      `source` - The `Window` object that originated the event
      `id` - An integer indicating the type of event. For information on allowable values, see the class description for `WindowEvent`. It is expected that this constructor will not be used for other then `WINDOW_STATE_CHANGED` `WindowEvent` types, because the previous and new window states are meaningless for other event types.
      `oldState` - An integer representing the previous window state. See `#getOldState()` for allowable values
      `newState` - An integer representing the new window state. See `#getNewState()` for allowable values
    Throws:
      `IllegalArgumentException` - if `source` is null
    Since:
      1.4
    See Also:
      - `getWindow()`
      - `AWTEvent.getID()`
      - `getOldState()`
      - `getNewState()`

  - ### WindowEvent

    public WindowEvent(Window source, int id)
    Constructs a `WindowEvent` object.

    This method throws an `IllegalArgumentException` if `source` is `null`.

    Parameters:
      `source` - The `Window` object that originated the event
      `id` - An integer indicating the type of event. For information on allowable values, see the class description for `WindowEvent`.
    Throws:
      `IllegalArgumentException` - if `source` is null
    See Also:
      - `getWindow()`
      - `AWTEvent.getID()`

- ## Method Details

  - ### getWindow

    public Window getWindow()
    Returns the originator of the event.
    Returns:
      the Window object that originated the event

  - ### getOppositeWindow

    public Window getOppositeWindow()
    Returns the other Window involved in this focus or activation change. For a WINDOW_ACTIVATED or WINDOW_GAINED_FOCUS event, this is the Window that lost activation or focus. For a WINDOW_DEACTIVATED or WINDOW_LOST_FOCUS event, this is the Window that gained activation or focus. For any other type of WindowEvent, or if the focus or activation change occurs with a native application, with a Java application in a different VM or context, or with no other Window, null is returned.
    Returns:
      the other Window involved in the focus or activation change, or null
    Since:
      1.4

  - ### getOldState

    public int getOldState()
    For `WINDOW_STATE_CHANGED` events returns the previous state of the window. The state is represented as a bitwise mask.
    - `NORMAL`
      Indicates that no state bits are set.
    - `ICONIFIED`
    - `MAXIMIZED_HORIZ`
    - `MAXIMIZED_VERT`
    - `MAXIMIZED_BOTH`
      Concatenates `MAXIMIZED_HORIZ` and `MAXIMIZED_VERT`.
    Returns:
      a bitwise mask of the previous window state
    Since:
      1.4
    See Also:
      - `Frame.getExtendedState()`

  - ### getNewState

    public int getNewState()
    For `WINDOW_STATE_CHANGED` events returns the new state of the window. The state is represented as a bitwise mask.
    - `NORMAL`
      Indicates that no state bits are set.
    - `ICONIFIED`
    - `MAXIMIZED_HORIZ`
    - `MAXIMIZED_VERT`
    - `MAXIMIZED_BOTH`
      Concatenates `MAXIMIZED_HORIZ` and `MAXIMIZED_VERT`.
    Returns:
      a bitwise mask of the new window state
    Since:
      1.4
    See Also:
      - `Frame.getExtendedState()`

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