# Class ComponentInputMap

java.lang.Object
javax.swing.InputMap
javax.swing.ComponentInputMap

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `ComponentInputMapUIResource`

public class ComponentInputMap extends InputMap
A `ComponentInputMap` is an `InputMap` associated with a particular `JComponent`. The component is automatically notified whenever the `ComponentInputMap` changes. `ComponentInputMap`s are used for `WHEN_IN_FOCUSED_WINDOW` bindings.

Since:
  1.3

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ComponentInputMap(JComponent component)`
  Creates a `ComponentInputMap` associated with the specified component.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  Removes all the mappings from this object.
  `JComponent`
  `getComponent()`
  Returns the component the `InputMap` was created for.
  `void`
  `put(KeyStroke keyStroke, Object actionMapKey)`
  Adds a binding for `keyStroke` to `actionMapKey`.
  `void`
  `remove(KeyStroke key)`
  Removes the binding for `key` from this object.
  `void`
  `setParent(InputMap map)`
  Sets the parent, which must be a `ComponentInputMap` associated with the same component as this `ComponentInputMap`.

  ### Methods declared in class InputMap

  `allKeys, get, getParent, keys, size`
  Modifier and Type
  Method
  Description
  `KeyStroke[]`
  `allKeys()`
  Returns an array of the `KeyStroke`s defined in this `InputMap` and its parent.
  `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`.
  `int`
  `size()`
  Returns the number of `KeyStroke` bindings.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, 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.
  `String`
  `toString()`
  Returns a string representation of the object.
  `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.

- ## Constructor Details

  - ### ComponentInputMap

    public ComponentInputMap(JComponent component)
    Creates a `ComponentInputMap` associated with the specified component.
    Parameters:
      `component` - a non-null `JComponent`
    Throws:
      `IllegalArgumentException` - if `component` is null

- ## Method Details

  - ### setParent

    public void setParent(InputMap map)
    Sets the parent, which must be a `ComponentInputMap` associated with the same component as this `ComponentInputMap`.
    Overrides:
      `setParent` in class `InputMap`
    Parameters:
      `map` - a `ComponentInputMap`
    Throws:
      `IllegalArgumentException` - if `map` is not a `ComponentInputMap` or is not associated with the same component

  - ### getComponent

    public JComponent getComponent()
    Returns the component the `InputMap` was created for.
    Returns:
      the component the `InputMap` was created for.

  - ### 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`.
    Overrides:
      `put` in class `InputMap`
    Parameters:
      `keyStroke` - a `KeyStroke`
      `actionMapKey` - an action map key

  - ### remove

    public void remove(KeyStroke key)
    Removes the binding for `key` from this object.
    Overrides:
      `remove` in class `InputMap`
    Parameters:
      `key` - the `KeyStroke` for which to remove the binding

  - ### clear

    public void clear()
    Removes all the mappings from this object.
    Overrides:
      `clear` in class `InputMap`