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

    All Methods Instance Methods Concrete Methods
    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 inherited from 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`.

    - #### get

          public Object get(KeyStroke keyStroke)

      Returns the binding for `keyStroke`, messaging the parent `InputMap` if the binding is not locally defined.

    - #### remove

          public void remove(KeyStroke key)

      Removes the binding for `key` from this `InputMap`.

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

    - #### size

          public int size()

      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.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.