Module java.desktop
Package javax.swing

## Class InputMap

- java.lang.Object
- - javax.swing.InputMap

- All Implemented Interfaces:
    `Serializable`
  Direct Known Subclasses:
    `ComponentInputMap`, `InputMapUIResource`

      public class InputMap
      extends Object
      implements Serializable

  `InputMap` provides a binding between an input event (currently only `KeyStroke`s are used) and an `Object`. `InputMap`s are usually used with an `ActionMap`, to determine an `Action` to perform when a key is pressed. An `InputMap` can have a parent that is searched for bindings not defined in the `InputMap`.

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

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

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

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `InputMap()` | Creates an `InputMap` with no parent and no mappings.

  - ### Method Summary

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

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

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

- - ### Constructor Detail

    - #### InputMap

          public InputMap()

      Creates an `InputMap` with no parent and no mappings.

  - ### Method Detail

    - #### setParent

          public void setParent​(InputMap map)

      Sets this `InputMap`'s parent.
      Parameters:
        `map` - the `InputMap` that is the parent of this one

    - #### getParent

          public InputMap getParent()

      Gets this `InputMap`'s parent.
      Returns:
        map the `InputMap` that is the parent of this one, or null if this `InputMap` has no parent

    - #### put

          public void put​(KeyStroke keyStroke,
                          Object actionMapKey)

      Adds a binding for `keyStroke` to `actionMapKey`. If `actionMapKey` is null, this removes the current binding for `keyStroke`.
      Parameters:
        `keyStroke` - a `KeyStroke`
        `actionMapKey` - an action map key

    - #### get

          public Object get​(KeyStroke keyStroke)

      Returns the binding for `keyStroke`, messaging the parent `InputMap` if the binding is not locally defined.
      Parameters:
        `keyStroke` - the `KeyStroke` for which to get the binding
      Returns:
        the binding for `keyStroke`

    - #### remove

          public void remove​(KeyStroke key)

      Removes the binding for `key` from this `InputMap`.
      Parameters:
        `key` - the `KeyStroke` for which to remove the binding

    - #### clear

          public void clear()

      Removes all the mappings from this `InputMap`.

    - #### keys

          public KeyStroke[] keys()

      Returns the `KeyStroke`s that are bound in this `InputMap`.
      Returns:
        an array of the `KeyStroke`s that are bound in this `InputMap`

    - #### size

          public int size()

      Returns the number of `KeyStroke` bindings.
      Returns:
        the number of `KeyStroke` bindings

    - #### allKeys

          public KeyStroke[] allKeys()

      Returns an array of the `KeyStroke`s defined in this `InputMap` and its parent. This differs from `keys()` in that this method includes the keys defined in the parent.
      Returns:
        an array of the `KeyStroke`s defined in this `InputMap` and its parent