JavaTM 2 Platform
Standard Edition

javax.swing
Class KeyStroke

java.lang.Object
  |
  +--javax.swing.KeyStroke

public class KeyStroke
extends Object
implements Serializable

A KeyStroke instance represents a key being typed on the keyboard -- it contains both a char code for the key and a modifier (alt, shift, ctrl, meta, or a combination).

KeyStroke objects are used to define high-level (semantic) action events. Instead of trapping every keystroke and throwing away the ones you are not interested in, those keystrokes you care about automatically initiate actions on the components they are registered with.

KeyStroke objects handle both character-code generating keystrokes you would trap with a KeyTyped event handler and key-code generating keystrokes (like Enter or F1) that you would trap with a KeyPressed event handler.

KeyStroke objects are immutable and unique.

All KeyStroke objects are cached. To get one, use getKeyStroke.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.

See Also:
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int), getKeyStroke(char), Serialized Form

Method Summary
 boolean equals(Object anObject)
          Returns true if this object is identical to the specified object.
 char getKeyChar()
          Returns the character defined by this KeyStroke object.
 int getKeyCode()
          Returns the numeric keycode defined by this KeyStroke object.
static KeyStroke getKeyStroke(char keyChar)
          Return a shared instance of a key stroke that is activated when the key is pressed (i.e.
static KeyStroke getKeyStroke(char keyChar, boolean onKeyRelease)
          Deprecated. use getKeyStroke(char)
static KeyStroke getKeyStroke(int keyCode, int modifiers)
          Return a shared instance of a key stroke given a char code and a set of modifiers -- the key is activated when it is pressed.
static KeyStroke getKeyStroke(int keyCode, int modifiers, boolean onKeyRelease)
          Return a shared instance of a key stroke given a numeric keycode and a set of modifiers, specifying whether the key is activated when it is pressed or released.
static KeyStroke getKeyStroke(String s)
          Parse a string with the following syntax and return an a KeyStroke:
static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
          Return a keystroke from an event.
 int getModifiers()
          Returns the modifier keys defined by this KeyStroke object.
 int hashCode()
          Returns a numeric value for this object that is likely to be reasonably unique, so it can be used as the index value in a Hashtable.
 boolean isOnKeyRelease()
          Returns true if this keystroke is active on key release.
 String toString()
          Returns a string that displays and identifies this object's properties.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

getKeyStroke

public static KeyStroke getKeyStroke(char keyChar)
Return a shared instance of a key stroke that is activated when the key is pressed (i.e. a KeyStroke for the KeyEvent.KEY_TYPED event).
Parameters:
keyChar - the character value for a keyboard key
Returns:
a KeyStroke object for that key

getKeyStroke

public static KeyStroke getKeyStroke(char keyChar,
                                     boolean onKeyRelease)
Deprecated. use getKeyStroke(char)

Return a shared instance of a key stroke, specifying whether the key is considered to be activated when it is pressed or when it is released.
Parameters:
keyChar - the character value for a keyboard key
onKeyRelease - a boolean value. When true, specifies that the key is active when it is released.
Returns:
a KeyStroke object for that key

getKeyStroke

public static KeyStroke getKeyStroke(int keyCode,
                                     int modifiers,
                                     boolean onKeyRelease)
Return a shared instance of a key stroke given a numeric keycode and a set of modifiers, specifying whether the key is activated when it is pressed or released.

The "virtual key" constants defined in java.awt.event.KeyEvent can be used to specify the key code. For example:

The modifiers consist of any combination of: Since these numbers are all different powers of two, any combination of them is an integer in which each bit represents a different modifier key.
Parameters:
keyCode - an int specifying the numeric code for a keyboard key
modifiers - an int specifying any combination of the key modifiers.
onKeyRelease - a boolean value. When true, specifies that the key is active when it is released.
Returns:
a KeyStroke object for that key
See Also:
KeyEvent, Event

getKeyStroke

public static KeyStroke getKeyStroke(int keyCode,
                                     int modifiers)
Return a shared instance of a key stroke given a char code and a set of modifiers -- the key is activated when it is pressed.

The "virtual key" constants defined in java.awt.event.KeyEvent can be used to specify the key code. For example:

The modifiers consist of any combination of: Since these numbers are all different powers of two, any combination of them is an integer in which each bit represents a different modifier key.
Parameters:
keyCode - an int specifying the numeric code for a keyboard key
modifiers - an int specifying any combination of the key modifiers.
Returns:
a KeyStroke object for that key
See Also:
KeyEvent

getKeyStrokeForEvent

public static KeyStroke getKeyStrokeForEvent(KeyEvent anEvent)
Return a keystroke from an event.

This method obtains the keyChar from a KeyTyped event, and the keyCode from a KeyPressed or KeyReleased event, so you the type of event doesn't matter.

Parameters:
anEvent - the KeyEvent to obtain the KeyStroke from
Returns:
the KeyStroke that precipitated the event

getKeyStroke

public static KeyStroke getKeyStroke(String s)
Parse a string with the following syntax and return an a KeyStroke:
    "<modifiers>* <key>"
    modifiers := shift | control | meta | alt | button1 | button2 | button3
    key := KeyEvent keycode name, i.e. the name following "VK_".
 
Here are some examples:
     "INSERT" => new KeyStroke(0, KeyEvent.VK_INSERT);
     "control DELETE" => new KeyStroke(InputEvent.CTRL_MASK, KeyEvent.VK_DELETE);
     "alt shift X" => new KeyStroke(InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, KeyEvent.VK_X);
 

getKeyChar

public char getKeyChar()
Returns the character defined by this KeyStroke object.
Returns:
a char value
See Also:
getKeyStroke(char)

getKeyCode

public int getKeyCode()
Returns the numeric keycode defined by this KeyStroke object.
Returns:
an int containing the keycode value
See Also:
getKeyStroke(int,int)

getModifiers

public int getModifiers()
Returns the modifier keys defined by this KeyStroke object.
Returns:
an int containing the modifiers
See Also:
getKeyStroke(int,int)

isOnKeyRelease

public boolean isOnKeyRelease()
Returns true if this keystroke is active on key release.
Returns:
true if active on key release, false if active on key press
See Also:
getKeyStroke(int,int,boolean)

hashCode

public int hashCode()
Returns a numeric value for this object that is likely to be reasonably unique, so it can be used as the index value in a Hashtable.
Overrides:
hashCode in class Object
Returns:
an int that "represents" this object
See Also:
Hashtable

equals

public boolean equals(Object anObject)
Returns true if this object is identical to the specified object.
Overrides:
equals in class Object
Parameters:
anObject - the Object to compare this object to
Returns:
true if the objects are identical

toString

public String toString()
Returns a string that displays and identifies this object's properties.
Overrides:
toString in class Object
Returns:
a String representation of this object

JavaTM 2 Platform
Standard Edition

Submit a bug or feature
Java, Java 2D, and JDBC are a trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.