Module java.desktop
Package javax.swing

Class 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 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
    See Also:
    Serialized Form
    • 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 KeyStrokes that are bound in this InputMap.
        Returns:
        an array of the KeyStrokes 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 KeyStrokes 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 KeyStrokes defined in this InputMap and its parent