javax.swing
Class InputMap

java.lang.Object
  extended byjavax.swing.InputMap
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
ComponentInputMap, InputMapUIResource, JTextComponent.KeymapWrapper

public class InputMap
extends Object
implements Serializable

InputMap provides a binding between an input event (currently only KeyStrokes are used) and an Object. InputMaps 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
Author:
Scott Violet
See Also:
Serialized Form

Field Summary
private  AbstractAction.ArrayTable arrayTable
          Handles the mapping between KeyStroke and Action name.
private  InputMap parent
          Parent that handles any bindings we don't contain.
 
Constructor Summary
InputMap()
          Creates an InputMap with no parent and no mappings.
 
Method Summary
 KeyStroke[] allKeys()
          Returns an array of the KeyStrokes 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 KeyStrokes that are bound in this InputMap.
 void put(KeyStroke keyStroke, Object actionMapKey)
          Adds a binding for keyStroke to actionMapKey.
private  void readObject(ObjectInputStream s)
           
 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.
private  void writeObject(ObjectOutputStream s)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

arrayTable

private transient AbstractAction.ArrayTable arrayTable
Handles the mapping between KeyStroke and Action name.


parent

private InputMap parent
Parent that handles any bindings we don't contain.

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 KeyStrokes 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 KeyStrokes defined in this InputMap and its parent. This differs from keys() in that this method includes the keys defined in the parent.


writeObject

private void writeObject(ObjectOutputStream s)
                  throws IOException
Throws:
IOException

readObject

private void readObject(ObjectInputStream s)
                 throws ClassNotFoundException,
                        IOException
Throws:
ClassNotFoundException
IOException