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 Details

### InputMap

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

## Method Details

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