# Class ActionEvent

java.lang.Object
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ActionEvent

All Implemented Interfaces:
  `Serializable`

public class ActionEvent extends AWTEvent
A semantic event which indicates that a component-defined action occurred. This high-level event is generated by a component (such as a `Button`) when the component-specific action occurs (such as being pressed). The event is passed to every `ActionListener` object that registered to receive such events using the component's `addActionListener` method.

Note: To invoke an `ActionEvent` on a `Button` using the keyboard, use the Space bar.

The object that implements the `ActionListener` interface gets this `ActionEvent` when the event occurs. The listener is therefore spared the details of processing individual mouse movements and mouse clicks, and can instead process a "meaningful" (semantic) event like "button pressed".

An unspecified behavior will be caused if the `id` parameter of any particular `ActionEvent` instance is not in the range from `ACTION_FIRST` to `ACTION_LAST`.

Since:
  1.1
See Also:
  - `ActionListener`
  - Tutorial: How to Write an Action Listener
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `ACTION_FIRST`
  The first number in the range of ids used for action events.
  `static final int`
  `ACTION_LAST`
  The last number in the range of ids used for action events.
  `static final int`
  `ACTION_PERFORMED`
  This event id indicates that a meaningful action occurred.
  `static final int`
  `ALT_MASK`
  The alt modifier.
  `static final int`
  `CTRL_MASK`
  The control modifier.
  `static final int`
  `META_MASK`
  The meta modifier.
  `static final int`
  `SHIFT_MASK`
  The shift modifier.

  ### 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`
  Modifier and Type
  Field
  Description
  `static final long`
  `ACTION_EVENT_MASK`
  The event mask for selecting action events.
  `static final long`
  `ADJUSTMENT_EVENT_MASK`
  The event mask for selecting adjustment events.
  `static final long`
  `COMPONENT_EVENT_MASK`
  The event mask for selecting component events.
  `protected boolean`
  `consumed`
  Controls whether or not the event is sent back down to the peer once the source has processed it - false means it's sent to the peer; true means it's not.
  `static final long`
  `CONTAINER_EVENT_MASK`
  The event mask for selecting container events.
  `static final long`
  `FOCUS_EVENT_MASK`
  The event mask for selecting focus events.
  `static final long`
  `HIERARCHY_BOUNDS_EVENT_MASK`
  The event mask for selecting hierarchy bounds events.
  `static final long`
  `HIERARCHY_EVENT_MASK`
  The event mask for selecting hierarchy events.
  `protected int`
  `id`
  The event's id.
  `static final long`
  `INPUT_METHOD_EVENT_MASK`
  The event mask for selecting input method events.
  `static final long`
  `INVOCATION_EVENT_MASK`
  The event mask for selecting invocation events.
  `static final long`
  `ITEM_EVENT_MASK`
  The event mask for selecting item events.
  `static final long`
  `KEY_EVENT_MASK`
  The event mask for selecting key events.
  `static final long`
  `MOUSE_EVENT_MASK`
  The event mask for selecting mouse events.
  `static final long`
  `MOUSE_MOTION_EVENT_MASK`
  The event mask for selecting mouse motion events.
  `static final long`
  `MOUSE_WHEEL_EVENT_MASK`
  The event mask for selecting mouse wheel events.
  `static final long`
  `PAINT_EVENT_MASK`
  The event mask for selecting paint events.
  `static final int`
  `RESERVED_ID_MAX`
  The maximum value for reserved AWT event IDs.
  `static final long`
  `TEXT_EVENT_MASK`
  The event mask for selecting text events.
  `static final long`
  `WINDOW_EVENT_MASK`
  The event mask for selecting window events.
  `static final long`
  `WINDOW_FOCUS_EVENT_MASK`
  The event mask for selecting window focus events.
  `static final long`
  `WINDOW_STATE_EVENT_MASK`
  The event mask for selecting window state events.

  ### Fields declared in class EventObject

  `source`
  Modifier and Type
  Field
  Description
  `protected Object`
  `source`
  The object on which the Event initially occurred.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ActionEvent(Object source, int id, String command)`
  Constructs an `ActionEvent` object.
  `ActionEvent(Object source, int id, String command, int modifiers)`
  Constructs an `ActionEvent` object with modifier keys.
  `ActionEvent(Object source, int id, String command, long when, int modifiers)`
  Constructs an `ActionEvent` object with the specified modifier keys and timestamp.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getActionCommand()`
  Returns the command string associated with this action.
  `int`
  `getModifiers()`
  Returns the modifier keys held down during this action event.
  `long`
  `getWhen()`
  Returns the timestamp of when this event occurred.
  `String`
  `paramString()`
  Returns a parameter string identifying this action event.

  ### Methods declared in class AWTEvent

  `consume, getID, isConsumed, setSource, toString`
  Modifier and Type
  Method
  Description
  `protected void`
  `consume()`
  Consumes this event, if this event can be consumed.
  `int`
  `getID()`
  Returns the event type.
  `protected boolean`
  `isConsumed()`
  Returns whether this event has been consumed.
  `void`
  `setSource(Object newSource)`
  Retargets an event to a new source.
  `String`
  `toString()`
  Returns a String representation of this object.

  ### Methods declared in class EventObject

  `getSource`
  Modifier and Type
  Method
  Description
  `Object`
  `getSource()`
  The object on which the Event initially occurred.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### SHIFT_MASK

    public static final int SHIFT_MASK
    The shift modifier. An indicator that the shift key was held down during the event.
    See Also:
      - Constant Field Values

  - ### CTRL_MASK

    public static final int CTRL_MASK
    The control modifier. An indicator that the control key was held down during the event.
    See Also:
      - Constant Field Values

  - ### META_MASK

    public static final int META_MASK
    The meta modifier. An indicator that the meta key was held down during the event.
    See Also:
      - Constant Field Values

  - ### ALT_MASK

    public static final int ALT_MASK
    The alt modifier. An indicator that the alt key was held down during the event.
    See Also:
      - Constant Field Values

  - ### ACTION_FIRST

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

  - ### ACTION_LAST

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

  - ### ACTION_PERFORMED

    @Native public static final int ACTION_PERFORMED
    This event id indicates that a meaningful action occurred.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ActionEvent

    public ActionEvent(Object source, int id, String command)
    Constructs an `ActionEvent` object.

    This method throws an `IllegalArgumentException` if `source` is `null`. A `null command` string is legal, but not recommended.

    Parameters:
      `source` - The object that originated the event
      `id` - An integer that identifies the event. For information on allowable values, see the class description for `ActionEvent`
      `command` - A string that may specify a command (possibly one of several) associated with the event
    Throws:
      `IllegalArgumentException` - if `source` is null
    See Also:
      - `EventObject.getSource()`
      - `AWTEvent.getID()`
      - `getActionCommand()`

  - ### ActionEvent

    public ActionEvent(Object source, int id, String command, int modifiers)
    Constructs an `ActionEvent` object with modifier keys.

    This method throws an `IllegalArgumentException` if `source` is `null`. A `null command` string is legal, but not recommended.

    Parameters:
      `source` - The object that originated the event
      `id` - An integer that identifies the event. For information on allowable values, see the class description for `ActionEvent`
      `command` - A string that may specify a command (possibly one of several) associated with the event
      `modifiers` - The modifier keys down during event (shift, ctrl, alt, meta). Passing negative parameter is not recommended. Zero value means that no modifiers were passed
    Throws:
      `IllegalArgumentException` - if `source` is null
    See Also:
      - `EventObject.getSource()`
      - `AWTEvent.getID()`
      - `getActionCommand()`
      - `getModifiers()`

  - ### ActionEvent

    public ActionEvent(Object source, int id, String command, long when, int modifiers)
    Constructs an `ActionEvent` object with the specified modifier keys and timestamp.

    This method throws an `IllegalArgumentException` if `source` is `null`. A `null command` string is legal, but not recommended.

    Parameters:
      `source` - The object that originated the event
      `id` - An integer that identifies the event. For information on allowable values, see the class description for `ActionEvent`
      `command` - A string that may specify a command (possibly one of several) associated with the event
      `when` - A long that gives the time the event occurred. Passing negative or zero value is not recommended
      `modifiers` - The modifier keys down during event (shift, ctrl, alt, meta). Passing negative parameter is not recommended. Zero value means that no modifiers were passed
    Throws:
      `IllegalArgumentException` - if `source` is null
    Since:
      1.4
    See Also:
      - `EventObject.getSource()`
      - `AWTEvent.getID()`
      - `getActionCommand()`
      - `getModifiers()`
      - `getWhen()`

- ## Method Details

  - ### getActionCommand

    public String getActionCommand()
    Returns the command string associated with this action. This string allows a "modal" component to specify one of several commands, depending on its state. For example, a single button might toggle between "show details" and "hide details". The source object and the event would be the same in each case, but the command string would identify the intended action.

    Note that if a `null` command string was passed to the constructor for this `ActionEvent`, this this method returns `null`.

    Returns:
      the string identifying the command for this event

  - ### getWhen

    public long getWhen()
    Returns the timestamp of when this event occurred. Because an ActionEvent is a high-level, semantic event, the timestamp is typically the same as an underlying InputEvent.
    Returns:
      this event's timestamp
    Since:
      1.4

  - ### getModifiers

    public int getModifiers()
    Returns the modifier keys held down during this action event.
    Returns:
      the bitwise-or of the modifier constants

  - ### paramString

    public String paramString()
    Returns a parameter string identifying this action event. This method is useful for event-logging and for debugging.
    Overrides:
      `paramString` in class `AWTEvent`
    Returns:
      a string identifying the event and its associated command