in src/java.desktop/share/classes/java/awt/event/KeyEvent.java [1512:1687]
public static String getKeyText(int keyCode) {
if (keyCode >= VK_0 && keyCode <= VK_9 ||
keyCode >= VK_A && keyCode <= VK_Z) {
return String.valueOf((char)keyCode);
}
switch(keyCode) {
case VK_ENTER: return Toolkit.getProperty("AWT.enter", "Enter");
case VK_BACK_SPACE: return Toolkit.getProperty("AWT.backSpace", "Backspace");
case VK_TAB: return Toolkit.getProperty("AWT.tab", "Tab");
case VK_CANCEL: return Toolkit.getProperty("AWT.cancel", "Cancel");
case VK_CLEAR: return Toolkit.getProperty("AWT.clear", "Clear");
case VK_COMPOSE: return Toolkit.getProperty("AWT.compose", "Compose");
case VK_PAUSE: return Toolkit.getProperty("AWT.pause", "Pause");
case VK_CAPS_LOCK: return Toolkit.getProperty("AWT.capsLock", "Caps Lock");
case VK_ESCAPE: return Toolkit.getProperty("AWT.escape", "Escape");
case VK_SPACE: return Toolkit.getProperty("AWT.space", "Space");
case VK_PAGE_UP: return Toolkit.getProperty("AWT.pgup", "Page Up");
case VK_PAGE_DOWN: return Toolkit.getProperty("AWT.pgdn", "Page Down");
case VK_END: return Toolkit.getProperty("AWT.end", "End");
case VK_HOME: return Toolkit.getProperty("AWT.home", "Home");
case VK_LEFT: return Toolkit.getProperty("AWT.left", "Left");
case VK_UP: return Toolkit.getProperty("AWT.up", "Up");
case VK_RIGHT: return Toolkit.getProperty("AWT.right", "Right");
case VK_DOWN: return Toolkit.getProperty("AWT.down", "Down");
case VK_BEGIN: return Toolkit.getProperty("AWT.begin", "Begin");
// modifiers
case VK_SHIFT: return Toolkit.getProperty("AWT.shift", "Shift");
case VK_CONTROL: return Toolkit.getProperty("AWT.control", "Control");
case VK_ALT: return Toolkit.getProperty("AWT.alt", "Alt");
case VK_META: return Toolkit.getProperty("AWT.meta", "Meta");
case VK_ALT_GRAPH: return Toolkit.getProperty("AWT.altGraph", "Alt Graph");
// punctuation
case VK_COMMA: return Toolkit.getProperty("AWT.comma", "Comma");
case VK_PERIOD: return Toolkit.getProperty("AWT.period", "Period");
case VK_SLASH: return Toolkit.getProperty("AWT.slash", "Slash");
case VK_SEMICOLON: return Toolkit.getProperty("AWT.semicolon", "Semicolon");
case VK_EQUALS: return Toolkit.getProperty("AWT.equals", "Equals");
case VK_OPEN_BRACKET: return Toolkit.getProperty("AWT.openBracket", "Open Bracket");
case VK_BACK_SLASH: return Toolkit.getProperty("AWT.backSlash", "Back Slash");
case VK_CLOSE_BRACKET: return Toolkit.getProperty("AWT.closeBracket", "Close Bracket");
// numpad numeric keys handled below
case VK_MULTIPLY: return Toolkit.getProperty("AWT.multiply", "NumPad *");
case VK_ADD: return Toolkit.getProperty("AWT.add", "NumPad +");
case VK_SEPARATOR: return Toolkit.getProperty("AWT.separator", "NumPad ,");
case VK_SUBTRACT: return Toolkit.getProperty("AWT.subtract", "NumPad -");
case VK_DECIMAL: return Toolkit.getProperty("AWT.decimal", "NumPad .");
case VK_DIVIDE: return Toolkit.getProperty("AWT.divide", "NumPad /");
case VK_DELETE: return Toolkit.getProperty("AWT.delete", "Delete");
case VK_NUM_LOCK: return Toolkit.getProperty("AWT.numLock", "Num Lock");
case VK_SCROLL_LOCK: return Toolkit.getProperty("AWT.scrollLock", "Scroll Lock");
case VK_WINDOWS: return Toolkit.getProperty("AWT.windows", "Windows");
case VK_CONTEXT_MENU: return Toolkit.getProperty("AWT.context", "Context Menu");
case VK_F1: return Toolkit.getProperty("AWT.f1", "F1");
case VK_F2: return Toolkit.getProperty("AWT.f2", "F2");
case VK_F3: return Toolkit.getProperty("AWT.f3", "F3");
case VK_F4: return Toolkit.getProperty("AWT.f4", "F4");
case VK_F5: return Toolkit.getProperty("AWT.f5", "F5");
case VK_F6: return Toolkit.getProperty("AWT.f6", "F6");
case VK_F7: return Toolkit.getProperty("AWT.f7", "F7");
case VK_F8: return Toolkit.getProperty("AWT.f8", "F8");
case VK_F9: return Toolkit.getProperty("AWT.f9", "F9");
case VK_F10: return Toolkit.getProperty("AWT.f10", "F10");
case VK_F11: return Toolkit.getProperty("AWT.f11", "F11");
case VK_F12: return Toolkit.getProperty("AWT.f12", "F12");
case VK_F13: return Toolkit.getProperty("AWT.f13", "F13");
case VK_F14: return Toolkit.getProperty("AWT.f14", "F14");
case VK_F15: return Toolkit.getProperty("AWT.f15", "F15");
case VK_F16: return Toolkit.getProperty("AWT.f16", "F16");
case VK_F17: return Toolkit.getProperty("AWT.f17", "F17");
case VK_F18: return Toolkit.getProperty("AWT.f18", "F18");
case VK_F19: return Toolkit.getProperty("AWT.f19", "F19");
case VK_F20: return Toolkit.getProperty("AWT.f20", "F20");
case VK_F21: return Toolkit.getProperty("AWT.f21", "F21");
case VK_F22: return Toolkit.getProperty("AWT.f22", "F22");
case VK_F23: return Toolkit.getProperty("AWT.f23", "F23");
case VK_F24: return Toolkit.getProperty("AWT.f24", "F24");
case VK_PRINTSCREEN: return Toolkit.getProperty("AWT.printScreen", "Print Screen");
case VK_INSERT: return Toolkit.getProperty("AWT.insert", "Insert");
case VK_HELP: return Toolkit.getProperty("AWT.help", "Help");
case VK_BACK_QUOTE: return Toolkit.getProperty("AWT.backQuote", "Back Quote");
case VK_QUOTE: return Toolkit.getProperty("AWT.quote", "Quote");
case VK_KP_UP: return Toolkit.getProperty("AWT.up", "Up");
case VK_KP_DOWN: return Toolkit.getProperty("AWT.down", "Down");
case VK_KP_LEFT: return Toolkit.getProperty("AWT.left", "Left");
case VK_KP_RIGHT: return Toolkit.getProperty("AWT.right", "Right");
case VK_DEAD_GRAVE: return Toolkit.getProperty("AWT.deadGrave", "Dead Grave");
case VK_DEAD_ACUTE: return Toolkit.getProperty("AWT.deadAcute", "Dead Acute");
case VK_DEAD_CIRCUMFLEX: return Toolkit.getProperty("AWT.deadCircumflex", "Dead Circumflex");
case VK_DEAD_TILDE: return Toolkit.getProperty("AWT.deadTilde", "Dead Tilde");
case VK_DEAD_MACRON: return Toolkit.getProperty("AWT.deadMacron", "Dead Macron");
case VK_DEAD_BREVE: return Toolkit.getProperty("AWT.deadBreve", "Dead Breve");
case VK_DEAD_ABOVEDOT: return Toolkit.getProperty("AWT.deadAboveDot", "Dead Above Dot");
case VK_DEAD_DIAERESIS: return Toolkit.getProperty("AWT.deadDiaeresis", "Dead Diaeresis");
case VK_DEAD_ABOVERING: return Toolkit.getProperty("AWT.deadAboveRing", "Dead Above Ring");
case VK_DEAD_DOUBLEACUTE: return Toolkit.getProperty("AWT.deadDoubleAcute", "Dead Double Acute");
case VK_DEAD_CARON: return Toolkit.getProperty("AWT.deadCaron", "Dead Caron");
case VK_DEAD_CEDILLA: return Toolkit.getProperty("AWT.deadCedilla", "Dead Cedilla");
case VK_DEAD_OGONEK: return Toolkit.getProperty("AWT.deadOgonek", "Dead Ogonek");
case VK_DEAD_IOTA: return Toolkit.getProperty("AWT.deadIota", "Dead Iota");
case VK_DEAD_VOICED_SOUND: return Toolkit.getProperty("AWT.deadVoicedSound", "Dead Voiced Sound");
case VK_DEAD_SEMIVOICED_SOUND: return Toolkit.getProperty("AWT.deadSemivoicedSound", "Dead Semivoiced Sound");
case VK_AMPERSAND: return Toolkit.getProperty("AWT.ampersand", "Ampersand");
case VK_ASTERISK: return Toolkit.getProperty("AWT.asterisk", "Asterisk");
case VK_QUOTEDBL: return Toolkit.getProperty("AWT.quoteDbl", "Double Quote");
case VK_LESS: return Toolkit.getProperty("AWT.Less", "Less");
case VK_GREATER: return Toolkit.getProperty("AWT.greater", "Greater");
case VK_BRACELEFT: return Toolkit.getProperty("AWT.braceLeft", "Left Brace");
case VK_BRACERIGHT: return Toolkit.getProperty("AWT.braceRight", "Right Brace");
case VK_AT: return Toolkit.getProperty("AWT.at", "At");
case VK_COLON: return Toolkit.getProperty("AWT.colon", "Colon");
case VK_CIRCUMFLEX: return Toolkit.getProperty("AWT.circumflex", "Circumflex");
case VK_DOLLAR: return Toolkit.getProperty("AWT.dollar", "Dollar");
case VK_EURO_SIGN: return Toolkit.getProperty("AWT.euro", "Euro");
case VK_EXCLAMATION_MARK: return Toolkit.getProperty("AWT.exclamationMark", "Exclamation Mark");
case VK_INVERTED_EXCLAMATION_MARK: return Toolkit.getProperty("AWT.invertedExclamationMark", "Inverted Exclamation Mark");
case VK_LEFT_PARENTHESIS: return Toolkit.getProperty("AWT.leftParenthesis", "Left Parenthesis");
case VK_NUMBER_SIGN: return Toolkit.getProperty("AWT.numberSign", "Number Sign");
case VK_MINUS: return Toolkit.getProperty("AWT.minus", "Minus");
case VK_PLUS: return Toolkit.getProperty("AWT.plus", "Plus");
case VK_RIGHT_PARENTHESIS: return Toolkit.getProperty("AWT.rightParenthesis", "Right Parenthesis");
case VK_UNDERSCORE: return Toolkit.getProperty("AWT.underscore", "Underscore");
case VK_FINAL: return Toolkit.getProperty("AWT.final", "Final");
case VK_CONVERT: return Toolkit.getProperty("AWT.convert", "Convert");
case VK_NONCONVERT: return Toolkit.getProperty("AWT.noconvert", "No Convert");
case VK_ACCEPT: return Toolkit.getProperty("AWT.accept", "Accept");
case VK_MODECHANGE: return Toolkit.getProperty("AWT.modechange", "Mode Change");
case VK_KANA: return Toolkit.getProperty("AWT.kana", "Kana");
case VK_KANJI: return Toolkit.getProperty("AWT.kanji", "Kanji");
case VK_ALPHANUMERIC: return Toolkit.getProperty("AWT.alphanumeric", "Alphanumeric");
case VK_KATAKANA: return Toolkit.getProperty("AWT.katakana", "Katakana");
case VK_HIRAGANA: return Toolkit.getProperty("AWT.hiragana", "Hiragana");
case VK_FULL_WIDTH: return Toolkit.getProperty("AWT.fullWidth", "Full-Width");
case VK_HALF_WIDTH: return Toolkit.getProperty("AWT.halfWidth", "Half-Width");
case VK_ROMAN_CHARACTERS: return Toolkit.getProperty("AWT.romanCharacters", "Roman Characters");
case VK_ALL_CANDIDATES: return Toolkit.getProperty("AWT.allCandidates", "All Candidates");
case VK_PREVIOUS_CANDIDATE: return Toolkit.getProperty("AWT.previousCandidate", "Previous Candidate");
case VK_CODE_INPUT: return Toolkit.getProperty("AWT.codeInput", "Code Input");
case VK_JAPANESE_KATAKANA: return Toolkit.getProperty("AWT.japaneseKatakana", "Japanese Katakana");
case VK_JAPANESE_HIRAGANA: return Toolkit.getProperty("AWT.japaneseHiragana", "Japanese Hiragana");
case VK_JAPANESE_ROMAN: return Toolkit.getProperty("AWT.japaneseRoman", "Japanese Roman");
case VK_KANA_LOCK: return Toolkit.getProperty("AWT.kanaLock", "Kana Lock");
case VK_INPUT_METHOD_ON_OFF: return Toolkit.getProperty("AWT.inputMethodOnOff", "Input Method On/Off");
case VK_AGAIN: return Toolkit.getProperty("AWT.again", "Again");
case VK_UNDO: return Toolkit.getProperty("AWT.undo", "Undo");
case VK_COPY: return Toolkit.getProperty("AWT.copy", "Copy");
case VK_PASTE: return Toolkit.getProperty("AWT.paste", "Paste");
case VK_CUT: return Toolkit.getProperty("AWT.cut", "Cut");
case VK_FIND: return Toolkit.getProperty("AWT.find", "Find");
case VK_PROPS: return Toolkit.getProperty("AWT.props", "Props");
case VK_STOP: return Toolkit.getProperty("AWT.stop", "Stop");
}
if (keyCode >= VK_NUMPAD0 && keyCode <= VK_NUMPAD9) {
String numpad = Toolkit.getProperty("AWT.numpad", "NumPad");
char c = (char)(keyCode - VK_NUMPAD0 + '0');
return numpad + "-" + c;
}
if ((keyCode & 0x01000000) != 0) {
return String.valueOf((char)(keyCode ^ 0x01000000 ));
}
String unknown = Toolkit.getProperty("AWT.unknown", "Unknown");
return unknown + " keyCode: 0x" + Integer.toString(keyCode, 16);
}