Module java.desktop
Package javax.swing

# Class ActionMap

java.lang.Object
javax.swing.ActionMap

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `ActionMapUIResource`

public class ActionMap extends Object implements Serializable
`ActionMap` provides mappings from `Object`s (called keys or `Action` names) to `Action`s. An `ActionMap` is usually used with an `InputMap` to locate a particular action when a key is pressed. As with `InputMap`, an `ActionMap` can have a parent that is searched for keys not defined in the `ActionMap`.

As with `InputMap` if you create a cycle, eg:

       ActionMap am = new ActionMap();
       ActionMap bm = new ActionMap():
       am.setParent(bm);
       bm.setParent(am);

some of the methods will cause a StackOverflowError to be thrown.

Since:
  1.3
See Also:
  - `InputMap`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ActionMap()`
  Creates an `ActionMap` with no parent and no mappings.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object[]`
  `allKeys()`
  Returns an array of the keys defined in this `ActionMap` and its parent.
  `void`
  `clear()`
  Removes all the mappings from this `ActionMap`.
  `Action`
  `get(Object key)`
  Returns the binding for `key`, messaging the parent `ActionMap` if the binding is not locally defined.
  `ActionMap`
  `getParent()`
  Returns this `ActionMap`'s parent.
  `Object[]`
  `keys()`
  Returns the `Action` names that are bound in this `ActionMap`.
  `void`
  `put(Object key, Action action)`
  Adds a binding for `key` to `action`.
  `void`
  `remove(Object key)`
  Removes the binding for `key` from this `ActionMap`.
  `void`
  `setParent(ActionMap map)`
  Sets this `ActionMap`'s parent.
  `int`
  `size()`
  Returns the number of bindings in this `ActionMap`.

  ### Methods declared in class java.lang.Object

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

- ## Constructor Details

  - ### ActionMap

    public ActionMap()
    Creates an `ActionMap` with no parent and no mappings.

- ## Method Details

  - ### setParent

    public void setParent(ActionMap map)
    Sets this `ActionMap`'s parent.
    Parameters:
      `map` - the `ActionMap` that is the parent of this one

  - ### getParent

    public ActionMap getParent()
    Returns this `ActionMap`'s parent.
    Returns:
      the `ActionMap` that is the parent of this one, or null if this `ActionMap` has no parent

  - ### put

    public void put(Object key, Action action)
    Adds a binding for `key` to `action`. If `action` is null, this removes the current binding for `key`.

    In most instances, `key` will be `action.getValue(NAME)`.

    Parameters:
      `key` - a key
      `action` - a binding for `key`

  - ### get

    public Action get(Object key)
    Returns the binding for `key`, messaging the parent `ActionMap` if the binding is not locally defined.
    Parameters:
      `key` - a key
    Returns:
      the binding for `key`

  - ### remove

    public void remove(Object key)
    Removes the binding for `key` from this `ActionMap`.
    Parameters:
      `key` - a key

  - ### clear

    public void clear()
    Removes all the mappings from this `ActionMap`.

  - ### keys

    public Object[] keys()
    Returns the `Action` names that are bound in this `ActionMap`.
    Returns:
      an array of the keys

  - ### size

    public int size()
    Returns the number of bindings in this `ActionMap`.
    Returns:
      the number of bindings in this `ActionMap`

  - ### allKeys

    public Object[] allKeys()
    Returns an array of the keys defined in this `ActionMap` and its parent. This method differs from `keys()` in that this method includes the keys defined in the parent.
    Returns:
      an array of the keys