diff options
Diffstat (limited to 'libjava/java/awt/event/KeyEvent.java')
-rw-r--r-- | libjava/java/awt/event/KeyEvent.java | 1740 |
1 files changed, 0 insertions, 1740 deletions
diff --git a/libjava/java/awt/event/KeyEvent.java b/libjava/java/awt/event/KeyEvent.java deleted file mode 100644 index a40a8e15c04..00000000000 --- a/libjava/java/awt/event/KeyEvent.java +++ /dev/null @@ -1,1740 +0,0 @@ -/* KeyEvent.java -- event for key presses - Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.awt.event; - -import gnu.java.awt.EventModifier; - -import java.awt.Component; -import java.io.IOException; -import java.io.ObjectInputStream; - -/** - * This event is generated when a key is pressed or released. There are two - * categories of key events: - * - * <p><em>"Key typed" events</em> are higher-level, and have already - * compensated for modifiers and keyboard layout to generate a single Unicode - * character. It may take several key press events to generate one key typed. - * The <code>getKeyCode</code> method will return <code>VK_UNDEFINED</code>, - * and <code>getKeyChar</code> will return a valid Unicode character or - * <code>CHAR_UNDEFINED</code>. - * - * <p><em>"Key pressed" and "key released" events</em> are lower-level, and - * are platform and keyboard dependent. They correspond to the actaul motion - * on a keyboard, and return a virtual key code which labels the key that was - * pressed. The <code>getKeyCode</code> method will return one of the - * <code>VK_*</code> constants (except VK_UNDEFINED), and the - * <code>getKeyChar</code> method is undefined. - * - * <p>Some keys do not generate key typed events, such as the F1 or HELP keys. - * Not all keyboards can generate all virtual keys, and no attempt is made to - * simulate the ones that can't be typed. Virtual keys correspond to the - * keyboard layout, so for example, VK_Q in English is VK_A in French. Also, - * there are some additional virtual keys to ease handling of actions, such - * as VK_ALL_CANDIDATES in place of ALT+VK_CONVERT. Do not rely on the value - * of the VK_* constants, except for VK_ENTER, VK_BACK_SPACE, and VK_TAB. - * - * @author Aaron M. Renn (arenn@urbanophile.com) - * @author Eric Blake (ebb9@email.byu.edu) - * @see KeyAdapter - * @see KeyListener - * @since 1.1 - * @status updated to 1.4 - */ -public class KeyEvent extends InputEvent -{ - /** - * Compatible with JDK 1.1+. - */ - private static final long serialVersionUID = -2352130953028126954L; - - /** This is the first id in the range of event ids used by this class. */ - public static final int KEY_FIRST = 400; - - /** This is the last id in the range of event ids used by this class. */ - public static final int KEY_LAST = 402; - - /** - * This event id indicates a key was typed, which is a key press followed - * by a key release to generate an actual Unicode character. It may take - * several key presses to generate one key typed event, and some action - * keys have no corresponding key typed. - */ - public static final int KEY_TYPED = 400; - - /** This event id indicates a key was pressed. */ - public static final int KEY_PRESSED = 401; - - /** This event it indicates a key was released. */ - public static final int KEY_RELEASED = 402; - - /** The virtual key Enter, which will always map to '\n'. */ - public static final int VK_ENTER = '\n'; - - /** The virtual key Backspace, which will always map to '\b'. */ - public static final int VK_BACK_SPACE = '\b'; - - /** The virtual key Tab, which will always map to '\t'. */ - public static final int VK_TAB = '\t'; - - /** The virtual key Cancel. */ - public static final int VK_CANCEL = 3; - - /** The virtual key VK_CLEAR. */ - public static final int VK_CLEAR = 12; - - /** The virtual key VK_SHIFT. */ - public static final int VK_SHIFT = 16; - - /** The virtual key VK_CONTROL. */ - public static final int VK_CONTROL = 17; - - /** The virtual key VK_ALT. */ - public static final int VK_ALT = 18; - - /** The virtual key VK_PAUSE. */ - public static final int VK_PAUSE = 19; - - /** The virtual key VK_CAPS_LOCK. */ - public static final int VK_CAPS_LOCK = 20; - - /** The virtual key VK_ESCAPE. */ - public static final int VK_ESCAPE = 27; - - /** The virtual key VK_SPACE. */ - public static final int VK_SPACE = ' '; - - /** The virtual key VK_PAGE_UP. */ - public static final int VK_PAGE_UP = 33; - - /** The virtual key VK_PAGE_DOWN. */ - public static final int VK_PAGE_DOWN = 34; - - /** The virtual key VK_END. */ - public static final int VK_END = 35; - - /** The virtual key VK_HOME. */ - public static final int VK_HOME = 36; - - /** - * The virtual key for the non-numpad VK_LEFT. - * - * @see #VK_KP_LEFT - */ - public static final int VK_LEFT = 37; - - /** - * The virtual key for the non-numpad VK_UP. - * - * @see #VK_KP_UP - */ - public static final int VK_UP = 38; - - /** - * The virtual key for the non-numpad VK_RIGHT. - * - * @see #VK_KP_RIGHT - */ - public static final int VK_RIGHT = 39; - - /** - * The virtual key for the non-numpad VK_DOWN. - * - * @see #VK_KP_DOWN - */ - public static final int VK_DOWN = 40; - - /** The virtual key VK_COMMA. */ - public static final int VK_COMMA = ','; - - /** - * The virtual key VK_MINUS. - * - * @since 1.2 - */ - public static final int VK_MINUS = '-'; - - /** The virtual key VK_PERIOD. */ - public static final int VK_PERIOD = '.'; - - /** The virtual key VK_SLASH. */ - public static final int VK_SLASH = '/'; - - /** The virtual key VK_0. */ - public static final int VK_0 = '0'; - - /** The virtual key VK_1. */ - public static final int VK_1 = '1'; - - /** The virtual key VK_2. */ - public static final int VK_2 = '2'; - - /** The virtual key VK_3. */ - public static final int VK_3 = '3'; - - /** The virtual key VK_4. */ - public static final int VK_4 = '4'; - - /** The virtual key VK_5. */ - public static final int VK_5 = '5'; - - /** The virtual key VK_6. */ - public static final int VK_6 = '6'; - - /** The virtual key VK_7. */ - public static final int VK_7 = '7'; - - /** The virtual key VK_8. */ - public static final int VK_8 = '8'; - - /** The virtual key VK_9. */ - public static final int VK_9 = '9'; - - /** The virtual key VK_SEMICOLON. */ - public static final int VK_SEMICOLON = ';'; - - /** The virtual key VK_EQUALS. */ - public static final int VK_EQUALS = '='; - - /** The virtual key VK_A. */ - public static final int VK_A = 'A'; - - /** The virtual key VK_B. */ - public static final int VK_B = 'B'; - - /** The virtual key VK_C. */ - public static final int VK_C = 'C'; - - /** The virtual key VK_D. */ - public static final int VK_D = 'D'; - - /** The virtual key VK_E. */ - public static final int VK_E = 'E'; - - /** The virtual key VK_F. */ - public static final int VK_F = 'F'; - - /** The virtual key VK_G. */ - public static final int VK_G = 'G'; - - /** The virtual key VK_H. */ - public static final int VK_H = 'H'; - - /** The virtual key VK_I. */ - public static final int VK_I = 'I'; - - /** The virtual key VK_J. */ - public static final int VK_J = 'J'; - - /** The virtual key VK_K. */ - public static final int VK_K = 'K'; - - /** The virtual key VK_L. */ - public static final int VK_L = 'L'; - - /** The virtual key VK_M. */ - public static final int VK_M = 'M'; - - /** The virtual key VK_N. */ - public static final int VK_N = 'N'; - - /** The virtual key VK_O. */ - public static final int VK_O = 'O'; - - /** The virtual key VK_P. */ - public static final int VK_P = 'P'; - - /** The virtual key VK_Q. */ - public static final int VK_Q = 'Q'; - - /** The virtual key VK_R. */ - public static final int VK_R = 'R'; - - /** The virtual key VK_S. */ - public static final int VK_S = 'S'; - - /** The virtual key VK_T. */ - public static final int VK_T = 'T'; - - /** The virtual key VK_U. */ - public static final int VK_U = 'U'; - - /** The virtual key VK_V. */ - public static final int VK_V = 'V'; - - /** The virtual key VK_W. */ - public static final int VK_W = 'W'; - - /** The virtual key VK_X. */ - public static final int VK_X = 'X'; - - /** The virtual key VK_Y. */ - public static final int VK_Y = 'Y'; - - /** The virtual key VK_Z. */ - public static final int VK_Z = 'Z'; - - /** The virtual key VK_OPEN_BRACKET. */ - public static final int VK_OPEN_BRACKET = '['; - - /** The virtual key VK_BACK_SLASH. */ - public static final int VK_BACK_SLASH = '\\'; - - /** The virtual key VK_CLOSE_BRACKET. */ - public static final int VK_CLOSE_BRACKET = ']'; - - /** The virtual key VK_NUMPAD0. */ - public static final int VK_NUMPAD0 = 96; - - /** The virtual key VK_NUMPAD1. */ - public static final int VK_NUMPAD1 = 97; - - /** The virtual key VK_NUMPAD2. */ - public static final int VK_NUMPAD2 = 98; - - /** The virtual key VK_NUMPAD3. */ - public static final int VK_NUMPAD3 = 99; - - /** The virtual key VK_NUMPAD4. */ - public static final int VK_NUMPAD4 = 100; - - /** The virtual key VK_NUMPAD5. */ - public static final int VK_NUMPAD5 = 101; - - /** The virtual key VK_NUMPAD6. */ - public static final int VK_NUMPAD6 = 102; - - /** The virtual key VK_NUMPAD7. */ - public static final int VK_NUMPAD7 = 103; - - /** The virtual key VK_NUMPAD8. */ - public static final int VK_NUMPAD8 = 104; - - /** The virtual key VK_NUMPAD9. */ - public static final int VK_NUMPAD9 = 105; - - /** The virtual key VK_MULTIPLY. */ - public static final int VK_MULTIPLY = 106; - - /** The virtual key VK_ADD. */ - public static final int VK_ADD = 107; - - /** - * The virtual key VK_SEPARATOR, handily mispelled for those who can't - * figure it out. - * - * @deprecated use {@link #VK_SEPARATOR} - */ - public static final int VK_SEPARATER = 108; - - /** - * The virtual key VK_SEPARATOR. - * - * @since 1.4 - */ - public static final int VK_SEPARATOR = 108; - - /** The virtual key VK_SUBTRACT. */ - public static final int VK_SUBTRACT = 109; - - /** The virtual key VK_DECIMAL. */ - public static final int VK_DECIMAL = 110; - - /** The virtual key VK_DIVIDE. */ - public static final int VK_DIVIDE = 111; - - /** The virtual key VK_DELETE. */ - public static final int VK_DELETE = 127; - - /** The virtual key VK_NUM_LOCK. */ - public static final int VK_NUM_LOCK = 144; - - /** The virtual key VK_SCROLL_LOCK. */ - public static final int VK_SCROLL_LOCK = 145; - - /** The virtual key VK_F1. */ - public static final int VK_F1 = 112; - - /** The virtual key VK_F2. */ - public static final int VK_F2 = 113; - - /** The virtual key VK_F3. */ - public static final int VK_F3 = 114; - - /** The virtual key VK_F4. */ - public static final int VK_F4 = 115; - - /** The virtual key VK_F5. */ - public static final int VK_F5 = 116; - - /** The virtual key VK_F6. */ - public static final int VK_F6 = 117; - - /** The virtual key VK_F7. */ - public static final int VK_F7 = 118; - - /** The virtual key VK_F8. */ - public static final int VK_F8 = 119; - - /** The virtual key VK_F9. */ - public static final int VK_F9 = 120; - - /** The virtual key VK_F10. */ - public static final int VK_F10 = 121; - - /** The virtual key VK_F11. */ - public static final int VK_F11 = 122; - - /** The virtual key VK_F12. */ - public static final int VK_F12 = 123; - - /** - * The virtual key VK_F13. - * - * @since 1.2 - */ - public static final int VK_F13 = 61440; - - /** - * The virtual key VK_F14. - * - * @since 1.2 - */ - public static final int VK_F14 = 61441; - - /** - * The virtual key VK_F15. - * - * @since 1.2 - */ - public static final int VK_F15 = 61442; - - /** - * The virtual key VK_F16. - * - * @since 1.2 - */ - public static final int VK_F16 = 61443; - - /** - * The virtual key VK_F17. - * - * @since 1.2 - */ - public static final int VK_F17 = 61444; - - /** - * The virtual key VK_F18. - * - * @since 1.2 - */ - public static final int VK_F18 = 61445; - - /** - * The virtual key VK_F19. - * - * @since 1.2 - */ - public static final int VK_F19 = 61446; - - /** - * The virtual key VK_F20. - * - * @since 1.2 - */ - public static final int VK_F20 = 61447; - - /** - * The virtual key VK_F21. - * - * @since 1.2 - */ - public static final int VK_F21 = 61448; - - /** - * The virtual key VK_F22. - * - * @since 1.2 - */ - public static final int VK_F22 = 61449; - - /** - * The virtual key VK_F23. - * - * @since 1.2 - */ - public static final int VK_F23 = 61450; - - /** - * The virtual key VK_F24. - * - * @since 1.2 - */ - public static final int VK_F24 = 61451; - - /** The virtual key VK_PRINTSCREEN. */ - public static final int VK_PRINTSCREEN = 154; - - /** The virtual key VK_INSERT. */ - public static final int VK_INSERT = 155; - - /** The virtual key VK_HELP. */ - public static final int VK_HELP = 156; - - /** The virtual key VK_META. */ - public static final int VK_META = 157; - - /** The virtual key VK_BACK_QUOTE. */ - public static final int VK_BACK_QUOTE = 192; - - /** The virtual key VK_QUOTE. */ - public static final int VK_QUOTE = 222; - - /** - * The virtual key for the numpad VK_KP_UP. - * - * @see #VK_UP - * @since 1.2 - */ - public static final int VK_KP_UP = 224; - - /** - * The virtual key for the numpad VK_KP_DOWN. - * - * @see #VK_DOWN - * @since 1.2 - */ - public static final int VK_KP_DOWN = 225; - - /** - * The virtual key for the numpad VK_KP_LEFT. - * - * @see #VK_LEFT - * @since 1.2 - */ - public static final int VK_KP_LEFT = 226; - - /** - * The virtual key for the numpad VK_KP_RIGHT. - * - * @see #VK_RIGHT - * @since 1.2 - */ - public static final int VK_KP_RIGHT = 227; - - /** - * The virtual key VK_DEAD_GRAVE. - * - * @since 1.2 - */ - public static final int VK_DEAD_GRAVE = 128; - - /** - * The virtual key VK_DEAD_ACUTE. - * - * @since 1.2 - */ - public static final int VK_DEAD_ACUTE = 129; - - /** - * The virtual key VK_DEAD_CIRCUMFLEX. - * - * @since 1.2 - */ - public static final int VK_DEAD_CIRCUMFLEX = 130; - - /** - * The virtual key VK_DEAD_TILDE. - * - * @since 1.2 - */ - public static final int VK_DEAD_TILDE = 131; - - /** - * The virtual key VK_DEAD_MACRON. - * - * @since 1.2 - */ - public static final int VK_DEAD_MACRON = 132; - - /** - * The virtual key VK_DEAD_BREVE. - * - * @since 1.2 - */ - public static final int VK_DEAD_BREVE = 133; - - /** - * The virtual key VK_DEAD_ABOVEDOT. - * - * @since 1.2 - */ - public static final int VK_DEAD_ABOVEDOT = 134; - - /** - * The virtual key VK_DEAD_DIAERESIS. - * - * @since 1.2 - */ - public static final int VK_DEAD_DIAERESIS = 135; - - /** - * The virtual key VK_DEAD_ABOVERING. - * - * @since 1.2 - */ - public static final int VK_DEAD_ABOVERING = 136; - - /** - * The virtual key VK_DEAD_DOUBLEACUTE. - * - * @since 1.2 - */ - public static final int VK_DEAD_DOUBLEACUTE = 137; - - /** - * The virtual key VK_DEAD_CARON. - * - * @since 1.2 - */ - public static final int VK_DEAD_CARON = 138; - - /** - * The virtual key VK_DEAD_CEDILLA. - * - * @since 1.2 - */ - public static final int VK_DEAD_CEDILLA = 139; - - /** - * The virtual key VK_DEAD_OGONEK. - * - * @since 1.2 - */ - public static final int VK_DEAD_OGONEK = 140; - - /** - * The virtual key VK_DEAD_IOTA. - * - * @since 1.2 - */ - public static final int VK_DEAD_IOTA = 141; - - /** - * The virtual key VK_DEAD_VOICED_SOUND. - * - * @since 1.2 - */ - public static final int VK_DEAD_VOICED_SOUND = 142; - - /** - * The virtual key VK_DEAD_SEMIVOICED_SOUND. - * - * @since 1.2 - */ - public static final int VK_DEAD_SEMIVOICED_SOUND = 143; - - /** - * The virtual key VK_AMPERSAND. - * - * @since 1.2 - */ - public static final int VK_AMPERSAND = 150; - - /** - * The virtual key VK_ASTERISK. - * - * @since 1.2 - */ - public static final int VK_ASTERISK = 151; - - /** - * The virtual key VK_QUOTEDBL. - * - * @since 1.2 - */ - public static final int VK_QUOTEDBL = 152; - - /** - * The virtual key VK_LESS. - * - * @since 1.2 - */ - public static final int VK_LESS = 153; - - /** - * The virtual key VK_GREATER. - * - * @since 1.2 - */ - public static final int VK_GREATER = 160; - - /** - * The virtual key VK_BRACELEFT. - * - * @since 1.2 - */ - public static final int VK_BRACELEFT = 161; - - /** - * The virtual key VK_BRACERIGHT. - * - * @since 1.2 - */ - public static final int VK_BRACERIGHT = 162; - - /** - * The virtual key VK_AT. - * - * @since 1.2 - */ - public static final int VK_AT = 512; - - /** - * The virtual key VK_COLON. - * - * @since 1.2 - */ - public static final int VK_COLON = 513; - - /** - * The virtual key VK_CIRCUMFLEX. - * - * @since 1.2 - */ - public static final int VK_CIRCUMFLEX = 514; - - /** - * The virtual key VK_DOLLAR. - * - * @since 1.2 - */ - public static final int VK_DOLLAR = 515; - - /** - * The virtual key VK_EURO_SIGN. - * - * @since 1.2 - */ - public static final int VK_EURO_SIGN = 516; - - /** - * The virtual key VK_EXCLAMATION_MARK. - * - * @since 1.2 - */ - public static final int VK_EXCLAMATION_MARK = 517; - - /** - * The virtual key VK_INVERTED_EXCLAMATION_MARK. - * - * @since 1.2 - */ - public static final int VK_INVERTED_EXCLAMATION_MARK = 518; - - /** - * The virtual key VK_LEFT_PARENTHESIS. - * - * @since 1.2 - */ - public static final int VK_LEFT_PARENTHESIS = 519; - - /** - * The virtual key VK_NUMBER_SIGN. - * - * @since 1.2 - */ - public static final int VK_NUMBER_SIGN = 520; - - /** - * The virtual key VK_PLUS. - * - * @since 1.2 - */ - public static final int VK_PLUS = 521; - - /** - * The virtual key VK_RIGHT_PARENTHESIS. - * - * @since 1.2 - */ - public static final int VK_RIGHT_PARENTHESIS = 522; - - /** - * The virtual key VK_UNDERSCORE. - * - * @since 1.2 - */ - public static final int VK_UNDERSCORE = 523; - - /** The virtual key VK_FINAL. */ - public static final int VK_FINAL = 24; - - /** The virtual key VK_CONVERT. */ - public static final int VK_CONVERT = 28; - - /** The virtual key VK_NONCONVERT. */ - public static final int VK_NONCONVERT = 29; - - /** The virtual key VK_ACCEPT. */ - public static final int VK_ACCEPT = 30; - - /** The virtual key VK_MODECHANGE. */ - public static final int VK_MODECHANGE = 31; - - /** The virtual key VK_KANA. */ - public static final int VK_KANA = 21; - - /** The virtual key VK_KANJI. */ - public static final int VK_KANJI = 25; - - /** - * The virtual key VK_ALPHANUMERIC. - * - * @since 1.2 - */ - public static final int VK_ALPHANUMERIC = 240; - - /** - * The virtual key VK_KATAKANA. - * - * @since 1.2 - */ - public static final int VK_KATAKANA = 241; - - /** - * The virtual key VK_HIRAGANA. - * - * @since 1.2 - */ - public static final int VK_HIRAGANA = 242; - - /** - * The virtual key VK_FULL_WIDTH. - * - * @since 1.2 - */ - public static final int VK_FULL_WIDTH = 243; - - /** - * The virtual key VK_HALF_WIDTH. - * - * @since 1.2 - */ - public static final int VK_HALF_WIDTH = 244; - - /** - * The virtual key VK_ROMAN_CHARACTERS. - * - * @since 1.2 - */ - public static final int VK_ROMAN_CHARACTERS = 245; - - /** - * The virtual key VK_ALL_CANDIDATES. - * - * @since 1.2 - */ - public static final int VK_ALL_CANDIDATES = 256; - - /** - * The virtual key VK_PREVIOUS_CANDIDATE. - * - * @since 1.2 - */ - public static final int VK_PREVIOUS_CANDIDATE = 257; - - /** - * The virtual key VK_CODE_INPUT. - * - * @since 1.2 - */ - public static final int VK_CODE_INPUT = 258; - - /** - * The virtual key VK_JAPANESE_KATAKANA. - * - * @since 1.2 - */ - public static final int VK_JAPANESE_KATAKANA = 259; - - /** - * The virtual key VK_JAPANESE_HIRAGANA. - * - * @since 1.2 - */ - public static final int VK_JAPANESE_HIRAGANA = 260; - - /** - * The virtual key VK_JAPANESE_ROMAN. - * - * @since 1.2 - */ - public static final int VK_JAPANESE_ROMAN = 261; - - /** - * The virtual key VK_KANA_LOCK. - * - * @since 1.3 - */ - public static final int VK_KANA_LOCK = 262; - - /** - * The virtual key VK_INPUT_METHOD_ON_OFF. - * - * @since 1.3 - */ - public static final int VK_INPUT_METHOD_ON_OFF = 263; - - /** - * The virtual key VK_CUT. - * - * @since 1.2 - */ - public static final int VK_CUT = 65489; - - /** - * The virtual key VK_COPY. - * - * @since 1.2 - */ - public static final int VK_COPY = 65485; - - /** - * The virtual key VK_PASTE. - * - * @since 1.2 - */ - public static final int VK_PASTE = 65487; - - /** - * The virtual key VK_UNDO. - * - * @since 1.2 - */ - public static final int VK_UNDO = 65483; - - /** - * The virtual key VK_AGAIN. - * - * @since 1.2 - */ - public static final int VK_AGAIN = 65481; - - /** - * The virtual key VK_FIND. - * - * @since 1.2 - */ - public static final int VK_FIND = 65488; - - /** - * The virtual key VK_PROPS. - * - * @since 1.2 - */ - public static final int VK_PROPS = 65482; - - /** - * The virtual key VK_STOP. - * - * @since 1.2 - */ - public static final int VK_STOP = 65480; - - /** - * The virtual key VK_COMPOSE. - * - * @since 1.2 - */ - public static final int VK_COMPOSE = 65312; - - /** - * The virtual key VK_ALT_GRAPH. - * - * @since 1.2 - */ - public static final int VK_ALT_GRAPH = 65406; - - /** - * The virtual key VK_UNDEFINED. This is used for key typed events, which - * do not have a virtual key. - */ - public static final int VK_UNDEFINED = 0; - - /** - * The only char with no valid Unicode interpretation. This is used for - * key pressed and key released events which do not have a valid keyChar. - */ - public static final char CHAR_UNDEFINED = '\uffff'; - - /** - * Indicates unknown or irrelavent key location. This is also used for - * key typed events, which do not need a location. - * - * @since 1.4 - */ - public static final int KEY_LOCATION_UNKNOWN = 0; - - /** - * Indicates a standard key location, with no left/right variants and not - * on the numeric pad. - * - * @since 1.4 - */ - public static final int KEY_LOCATION_STANDARD = 1; - - /** - * Indicates the key is on the left side of the keyboard, such as the left - * shift. - * - * @since 1.4 - */ - public static final int KEY_LOCATION_LEFT = 2; - - /** - * Indicates the key is on the right side of the keyboard, such as the right - * shift. - * - * @since 1.4 - */ - public static final int KEY_LOCATION_RIGHT = 3; - - /** - * Indicates the key is on the numeric pad, such as the numpad 0. - * - * @since 1.4 - */ - public static final int KEY_LOCATION_NUMPAD = 4; - - /** - * The code assigned to the physical keyboard location (as adjusted by the - * keyboard layout). Use the symbolic VK_* names instead of numbers. - * - * @see #getKeyCode() - * @serial the VK_ code for this key - */ - private int keyCode; - - /** - * The Unicode character produced by the key type event. This has no meaning - * for key pressed and key released events. - * - * @see #getKeyChar() - * @serial the Unicode value for this key - */ - private char keyChar; - - /** - * The keyboard location of the key. One of {@link #KEY_LOCATION_UNKNOWN}, - * {@link #KEY_LOCATION_STANDARD}, {@link #KEY_LOCATION_LEFT}, - * {@link #KEY_LOCATION_RIGHT}, or {@link #KEY_LOCATION_NUMPAD}. - * - * @see #getKeyLocation() - * @serial the key location - * @since 1.4 - */ - private final int keyLocation; - - /** - * Stores the state of the native event dispatching system, to correctly - * dispatch in Component#dispatchEventImpl when a proxy is active. - * - * XXX Does this matter in Classpath? - * - * @serial whether the proxy is active - */ - private boolean isProxyActive; - - - /** - * Initializes a new instance of <code>KeyEvent</code> with the specified - * information. Note that an invalid id leads to unspecified results. - * - * @param source the component that generated this event - * @param id the event id - * @param when the timestamp when the even occurred - * @param modifiers the modifier keys during the event, in old or new style - * @param keyCode the integer constant for the virtual key type - * @param keyChar the Unicode value of the key - * @param keyLocation the location of the key - * @throws IllegalArgumentException if source is null, if keyLocation is - * invalid, or if (id == KEY_TYPED && (keyCode != VK_UNDEFINED - * || keyChar == CHAR_UNDEFINED)) - */ - public KeyEvent(Component source, int id, long when, int modifiers, - int keyCode, char keyChar, int keyLocation) - { - super(source, id, when, modifiers); - this.keyCode = keyCode; - this.keyChar = keyChar; - this.keyLocation = keyLocation; - if ((id == KEY_TYPED && (keyCode != VK_UNDEFINED - || keyChar == CHAR_UNDEFINED)) - || keyLocation < KEY_LOCATION_UNKNOWN - || keyLocation > KEY_LOCATION_NUMPAD) - throw new IllegalArgumentException(); - } - - /** - * Initializes a new instance of <code>KeyEvent</code> with the specified - * information. Note that an invalid id leads to unspecified results. - * - * @param source the component that generated this event - * @param id the event id - * @param when the timestamp when the even occurred - * @param modifiers the modifier keys during the event, in old or new style - * @param keyCode the integer constant for the virtual key type - * @param keyChar the Unicode value of the key - * @throws IllegalArgumentException if source is null, or if - * (id == KEY_TYPED && (keyCode != VK_UNDEFINED - * || keyChar == CHAR_UNDEFINED)) - */ - public KeyEvent(Component source, int id, long when, int modifiers, - int keyCode, char keyChar) - { - this(source, id, when, modifiers, keyCode, keyChar, KEY_LOCATION_UNKNOWN); - } - - /** - * Initializes a new instance of <code>KeyEvent</code> with the specified - * information. Note that an invalid id leads to unspecified results. - * - * @param source the component that generated this event - * @param id the event id - * @param when the timestamp when the even occurred - * @param modifiers the modifier keys during the event, in old or new style - * @param keyCode the integer constant for the virtual key type - * @throws IllegalArgumentException if source is null, or if - * id == KEY_TYPED but keyCode != VK_UNDEFINED - * - * @deprecated - */ - public KeyEvent(Component source, int id, long when, int modifiers, - int keyCode) - { - this(source, id, when, modifiers, keyCode, '\0', KEY_LOCATION_UNKNOWN); - } - - /** - * Returns the key code for the event key. This will be one of the - * <code>VK_*</code> constants defined in this class. If the event type is - * KEY_TYPED, the result will be VK_UNDEFINED. - * - * @return the key code for this event - */ - public int getKeyCode() - { - return keyCode; - } - - /** - * Sets the key code for this event. This must be one of the - * <code>VK_*</code> constants defined in this class. - * - * @param keyCode the new key code for this event - */ - public void setKeyCode(int keyCode) - { - this.keyCode = keyCode; - } - - /** - * Returns the Unicode value for the event key. This will be - * <code>CHAR_UNDEFINED</code> if there is no Unicode equivalent for - * this key, usually when this is a KEY_PRESSED or KEY_RELEASED event. - * - * @return the Unicode character for this event - */ - public char getKeyChar() - { - return keyChar; - } - - /** - * Sets the Unicode character for this event to the specified value. - * - * @param keyChar the new Unicode character for this event - */ - public void setKeyChar(char keyChar) - { - this.keyChar = keyChar; - } - - /** - * Sets the modifier keys to the specified value. This should be a union - * of the bit mask constants from <code>InputEvent</code>. The use of this - * method is not recommended, particularly for KEY_TYPED events, which do - * not check if the modifiers were changed. - * - * @param modifiers the new modifier value, in either old or new style - * @see InputEvent - * - * @deprecated - */ - public void setModifiers(int modifiers) - { - this.modifiers = EventModifier.extend(modifiers); - } - - /** - * Returns the keyboard location of the key that generated this event. This - * provides a way to distinguish between keys like left and right shift - * which share a common key code. The result will be one of - * {@link #KEY_LOCATION_UNKNOWN}, {@link #KEY_LOCATION_STANDARD}, - * {@link #KEY_LOCATION_LEFT}, {@link #KEY_LOCATION_RIGHT}, or - * {@link #KEY_LOCATION_NUMPAD}. - * - * @return the key location - * @since 1.4 - */ - public int getKeyLocation() - { - return keyLocation; - } - - /** - * Returns the text name of key code, such as "HOME", "F1", or "A". - * - * XXX Sun claims this can be localized via the awt.properties file - how - * do we implement that? - * - * @return the text name of the key code - */ - public static String getKeyText(int keyCode) - { - switch (keyCode) - { - case VK_CANCEL: - return "Cancel"; - case VK_BACK_SPACE: - return "Backspace"; - case VK_TAB: - return "Tab"; - case VK_ENTER: - return "Enter"; - case VK_CLEAR: - return "Clear"; - case VK_SHIFT: - return "Shift"; - case VK_CONTROL: - return "Ctrl"; - case VK_ALT: - return "Alt"; - case VK_PAUSE: - return "Pause"; - case VK_CAPS_LOCK: - return "Caps Lock"; - case VK_KANA: - return "Kana"; - case VK_FINAL: - return "Final"; - case VK_KANJI: - return "Kanji"; - case VK_ESCAPE: - return "Escape"; - case VK_CONVERT: - return "Convert"; - case VK_NONCONVERT: - return "No Convert"; - case VK_ACCEPT: - return "Accept"; - case VK_MODECHANGE: - return "Mode Change"; - case VK_SPACE: - return "Space"; - case VK_PAGE_UP: - return "Page Up"; - case VK_PAGE_DOWN: - return "Page Down"; - case VK_END: - return "End"; - case VK_HOME: - return "Home"; - case VK_LEFT: - case VK_KP_LEFT: - return "Left"; - case VK_UP: - case VK_KP_UP: - return "Up"; - case VK_RIGHT: - case VK_KP_RIGHT: - return "Right"; - case VK_DOWN: - case VK_KP_DOWN: - return "Down"; - case VK_MINUS: - return "Minus"; - case VK_MULTIPLY: - return "NumPad *"; - case VK_ADD: - return "NumPad +"; - case VK_SEPARATOR: - return "NumPad ,"; - case VK_SUBTRACT: - return "NumPad -"; - case VK_DECIMAL: - return "NumPad ."; - case VK_DIVIDE: - return "NumPad /"; - case VK_DELETE: - return "Delete"; - case VK_DEAD_GRAVE: - return "Dead Grave"; - case VK_DEAD_ACUTE: - return "Dead Acute"; - case VK_DEAD_CIRCUMFLEX: - return "Dead Circumflex"; - case VK_DEAD_TILDE: - return "Dead Tilde"; - case VK_DEAD_MACRON: - return "Dead Macron"; - case VK_DEAD_BREVE: - return "Dead Breve"; - case VK_DEAD_ABOVEDOT: - return "Dead Above Dot"; - case VK_DEAD_DIAERESIS: - return "Dead Diaeresis"; - case VK_DEAD_ABOVERING: - return "Dead Above Ring"; - case VK_DEAD_DOUBLEACUTE: - return "Dead Double Acute"; - case VK_DEAD_CARON: - return "Dead Caron"; - case VK_DEAD_CEDILLA: - return "Dead Cedilla"; - case VK_DEAD_OGONEK: - return "Dead Ogonek"; - case VK_DEAD_IOTA: - return "Dead Iota"; - case VK_DEAD_VOICED_SOUND: - return "Dead Voiced Sound"; - case VK_DEAD_SEMIVOICED_SOUND: - return "Dead Semivoiced Sound"; - case VK_NUM_LOCK: - return "Num Lock"; - case VK_SCROLL_LOCK: - return "Scroll Lock"; - case VK_AMPERSAND: - return "Ampersand"; - case VK_ASTERISK: - return "Asterisk"; - case VK_QUOTEDBL: - return "Double Quote"; - case VK_LESS: - return "Less"; - case VK_PRINTSCREEN: - return "Print Screen"; - case VK_INSERT: - return "Insert"; - case VK_HELP: - return "Help"; - case VK_META: - return "Meta"; - case VK_GREATER: - return "Greater"; - case VK_BRACELEFT: - return "Left Brace"; - case VK_BRACERIGHT: - return "Right Brace"; - case VK_BACK_QUOTE: - return "Back Quote"; - case VK_QUOTE: - return "Quote"; - case VK_ALPHANUMERIC: - return "Alphanumeric"; - case VK_KATAKANA: - return "Katakana"; - case VK_HIRAGANA: - return "Hiragana"; - case VK_FULL_WIDTH: - return "Full-Width"; - case VK_HALF_WIDTH: - return "Half-Width"; - case VK_ROMAN_CHARACTERS: - return "Roman Characters"; - case VK_ALL_CANDIDATES: - return "All Candidates"; - case VK_PREVIOUS_CANDIDATE: - return "Previous Candidate"; - case VK_CODE_INPUT: - return "Code Input"; - case VK_JAPANESE_KATAKANA: - return "Japanese Katakana"; - case VK_JAPANESE_HIRAGANA: - return "Japanese Hiragana"; - case VK_JAPANESE_ROMAN: - return "Japanese Roman"; - case VK_KANA_LOCK: - return "Kana Lock"; - case VK_INPUT_METHOD_ON_OFF: - return "Input Method On/Off"; - case VK_AT: - return "At"; - case VK_COLON: - return "Colon"; - case VK_CIRCUMFLEX: - return "Circumflex"; - case VK_DOLLAR: - return "Dollar"; - case VK_EURO_SIGN: - return "Euro"; - case VK_EXCLAMATION_MARK: - return "Exclamation Mark"; - case VK_INVERTED_EXCLAMATION_MARK: - return "Inverted Exclamation Mark"; - case VK_LEFT_PARENTHESIS: - return "Left Parenthesis"; - case VK_NUMBER_SIGN: - return "Number Sign"; - case VK_PLUS: - return "Plus"; - case VK_RIGHT_PARENTHESIS: - return "Right Parenthesis"; - case VK_UNDERSCORE: - return "Underscore"; - case VK_COMPOSE: - return "Compose"; - case VK_ALT_GRAPH: - return "Alt Graph"; - case VK_STOP: - return "Stop"; - case VK_AGAIN: - return "Again"; - case VK_PROPS: - return "Props"; - case VK_UNDO: - return "Undo"; - case VK_COPY: - return "Copy"; - case VK_PASTE: - return "Paste"; - case VK_FIND: - return "Find"; - case VK_CUT: - return "Cut"; - case VK_COMMA: - case VK_PERIOD: - case VK_SLASH: - case VK_0: - case VK_1: - case VK_2: - case VK_3: - case VK_4: - case VK_5: - case VK_6: - case VK_7: - case VK_8: - case VK_9: - case VK_SEMICOLON: - case VK_EQUALS: - case VK_A: - case VK_B: - case VK_C: - case VK_D: - case VK_E: - case VK_F: - case VK_G: - case VK_H: - case VK_I: - case VK_J: - case VK_K: - case VK_L: - case VK_M: - case VK_N: - case VK_O: - case VK_P: - case VK_Q: - case VK_R: - case VK_S: - case VK_T: - case VK_U: - case VK_V: - case VK_W: - case VK_X: - case VK_Y: - case VK_Z: - case VK_OPEN_BRACKET: - case VK_BACK_SLASH: - case VK_CLOSE_BRACKET: - return "" + (char) keyCode; - case VK_NUMPAD0: - case VK_NUMPAD1: - case VK_NUMPAD2: - case VK_NUMPAD3: - case VK_NUMPAD4: - case VK_NUMPAD5: - case VK_NUMPAD6: - case VK_NUMPAD7: - case VK_NUMPAD8: - case VK_NUMPAD9: - return "NumPad-" + (keyCode - VK_NUMPAD0); - case VK_F1: - case VK_F2: - case VK_F3: - case VK_F4: - case VK_F5: - case VK_F6: - case VK_F7: - case VK_F8: - case VK_F9: - case VK_F10: - case VK_F11: - case VK_F12: - return "F" + (keyCode - (VK_F1 - 1)); - case VK_F13: - case VK_F14: - case VK_F15: - case VK_F16: - case VK_F17: - case VK_F18: - case VK_F19: - case VK_F20: - case VK_F21: - case VK_F22: - case VK_F23: - case VK_F24: - return "F" + (keyCode - (VK_F13 - 13)); - default: - // This is funky on negative numbers, but that's Sun's fault. - return "Unknown keyCode: 0x" + (keyCode < 0 ? "-" : "") - + Integer.toHexString(Math.abs(keyCode)); - } - } - - /** - * Returns a string describing the modifiers, such as "Shift" or - * "Ctrl+Button1". - * - * XXX Sun claims this can be localized via the awt.properties file - how - * do we implement that? - * - * @param modifiers the old-style modifiers to convert to text - * @return a string representation of the modifiers in this bitmask - */ - public static String getKeyModifiersText(int modifiers) - { - return getModifiersExText(EventModifier.extend(modifiers - & EventModifier.OLD_MASK)); - } - - /** - * Tests whether or not this key is an action key. An action key typically - * does not fire a KEY_TYPED event, and is not a modifier. - * - * @return true if this is an action key - */ - public boolean isActionKey() - { - switch (keyCode) - { - case VK_PAUSE: - case VK_CAPS_LOCK: - case VK_KANA: - case VK_FINAL: - case VK_KANJI: - case VK_CONVERT: - case VK_NONCONVERT: - case VK_ACCEPT: - case VK_MODECHANGE: - case VK_PAGE_UP: - case VK_PAGE_DOWN: - case VK_END: - case VK_HOME: - case VK_LEFT: - case VK_UP: - case VK_RIGHT: - case VK_DOWN: - case VK_F1: - case VK_F2: - case VK_F3: - case VK_F4: - case VK_F5: - case VK_F6: - case VK_F7: - case VK_F8: - case VK_F9: - case VK_F10: - case VK_F11: - case VK_F12: - case VK_NUM_LOCK: - case VK_SCROLL_LOCK: - case VK_PRINTSCREEN: - case VK_INSERT: - case VK_HELP: - case VK_KP_UP: - case VK_KP_DOWN: - case VK_KP_LEFT: - case VK_KP_RIGHT: - case VK_ALPHANUMERIC: - case VK_KATAKANA: - case VK_HIRAGANA: - case VK_FULL_WIDTH: - case VK_HALF_WIDTH: - case VK_ROMAN_CHARACTERS: - case VK_ALL_CANDIDATES: - case VK_PREVIOUS_CANDIDATE: - case VK_CODE_INPUT: - case VK_JAPANESE_KATAKANA: - case VK_JAPANESE_HIRAGANA: - case VK_JAPANESE_ROMAN: - case VK_KANA_LOCK: - case VK_INPUT_METHOD_ON_OFF: - case VK_F13: - case VK_F14: - case VK_F15: - case VK_F16: - case VK_F17: - case VK_F18: - case VK_F19: - case VK_F20: - case VK_F21: - case VK_F22: - case VK_F23: - case VK_F24: - case VK_STOP: - case VK_AGAIN: - case VK_PROPS: - case VK_UNDO: - case VK_COPY: - case VK_PASTE: - case VK_FIND: - case VK_CUT: - return true; - default: - return false; - } - } - - /** - * Returns a string identifying the event. This is formatted as the - * field name of the id type, followed by the keyCode, then the - * keyChar, modifiers (if any), extModifiers (if any), and - * keyLocation. - * - * @return a string identifying the event - */ - public String paramString() - { - StringBuffer s = new StringBuffer(); - - switch (id) - { - case KEY_PRESSED: - s.append("KEY_PRESSED"); - break; - case KEY_RELEASED: - s.append("KEY_RELEASED"); - break; - case KEY_TYPED: - s.append("KEY_TYPED"); - break; - default: - s.append("unknown type"); - } - - s.append(",keyCode=").append(keyCode); - - s.append(",keyText=").append(getKeyText(keyCode)); - - s.append(",keyChar="); - if (isActionKey() - || keyCode == VK_SHIFT - || keyCode == VK_CONTROL - || keyCode == VK_ALT) - s.append("Undefined keyChar"); - else - { - /* This output string must be selected by examining keyChar - * rather than keyCode, because key code information is not - * included in KEY_TYPED events. - */ - if (keyChar == VK_BACK_SPACE - || keyChar == VK_TAB - || keyChar == VK_ENTER - || keyChar == VK_ESCAPE - || keyChar == VK_DELETE) - s.append(getKeyText(keyChar)); - else - s.append("'").append(keyChar).append("'"); - } - - if ((modifiers & CONVERT_MASK) != 0) - s.append(",modifiers=").append(getModifiersExText(modifiers - & CONVERT_MASK)); - if (modifiers != 0) - s.append(",extModifiers=").append(getModifiersExText(modifiers)); - - s.append(",keyLocation=KEY_LOCATION_"); - switch (keyLocation) - { - case KEY_LOCATION_UNKNOWN: - s.append("UNKNOWN"); - break; - case KEY_LOCATION_STANDARD: - s.append("STANDARD"); - break; - case KEY_LOCATION_LEFT: - s.append("LEFT"); - break; - case KEY_LOCATION_RIGHT: - s.append("RIGHT"); - break; - case KEY_LOCATION_NUMPAD: - s.append("NUMPAD"); - } - - return s.toString(); - } - - /** - * Reads in the object from a serial stream. - * - * @param s the stream to read from - * @throws IOException if deserialization fails - * @throws ClassNotFoundException if deserialization fails - * @serialData default, except that the modifiers are converted to new style - */ - private void readObject(ObjectInputStream s) - throws IOException, ClassNotFoundException - { - s.defaultReadObject(); - modifiers = EventModifier.extend(modifiers); - } -} // class KeyEvent |