| 1 7 8 package java.awt.event; 9 10 import java.awt.Event ; 11 import java.awt.Component ; 12 import java.awt.GraphicsEnvironment ; 13 import java.awt.Toolkit ; 14 import java.io.IOException ; 15 import java.io.ObjectInputStream ; 16 17 112 public class KeyEvent extends InputEvent { 113 114 122 private boolean isProxyActive = false; 123 124 127 public static final int KEY_FIRST = 400; 128 129 132 public static final int KEY_LAST = 402; 133 134 141 public static final int KEY_TYPED = KEY_FIRST; 142 143 147 public static final int KEY_PRESSED = 1 + KEY_FIRST; 149 153 public static final int KEY_RELEASED = 2 + KEY_FIRST; 155 156 157 public static final int VK_ENTER = '\n'; 158 public static final int VK_BACK_SPACE = '\b'; 159 public static final int VK_TAB = '\t'; 160 public static final int VK_CANCEL = 0x03; 161 public static final int VK_CLEAR = 0x0C; 162 public static final int VK_SHIFT = 0x10; 163 public static final int VK_CONTROL = 0x11; 164 public static final int VK_ALT = 0x12; 165 public static final int VK_PAUSE = 0x13; 166 public static final int VK_CAPS_LOCK = 0x14; 167 public static final int VK_ESCAPE = 0x1B; 168 public static final int VK_SPACE = 0x20; 169 public static final int VK_PAGE_UP = 0x21; 170 public static final int VK_PAGE_DOWN = 0x22; 171 public static final int VK_END = 0x23; 172 public static final int VK_HOME = 0x24; 173 174 178 public static final int VK_LEFT = 0x25; 179 180 184 public static final int VK_UP = 0x26; 185 186 190 public static final int VK_RIGHT = 0x27; 191 192 196 public static final int VK_DOWN = 0x28; 197 198 201 public static final int VK_COMMA = 0x2C; 202 203 207 public static final int VK_MINUS = 0x2D; 208 209 212 public static final int VK_PERIOD = 0x2E; 213 214 217 public static final int VK_SLASH = 0x2F; 218 219 220 public static final int VK_0 = 0x30; 221 public static final int VK_1 = 0x31; 222 public static final int VK_2 = 0x32; 223 public static final int VK_3 = 0x33; 224 public static final int VK_4 = 0x34; 225 public static final int VK_5 = 0x35; 226 public static final int VK_6 = 0x36; 227 public static final int VK_7 = 0x37; 228 public static final int VK_8 = 0x38; 229 public static final int VK_9 = 0x39; 230 231 234 public static final int VK_SEMICOLON = 0x3B; 235 236 239 public static final int VK_EQUALS = 0x3D; 240 241 242 public static final int VK_A = 0x41; 243 public static final int VK_B = 0x42; 244 public static final int VK_C = 0x43; 245 public static final int VK_D = 0x44; 246 public static final int VK_E = 0x45; 247 public static final int VK_F = 0x46; 248 public static final int VK_G = 0x47; 249 public static final int VK_H = 0x48; 250 public static final int VK_I = 0x49; 251 public static final int VK_J = 0x4A; 252 public static final int VK_K = 0x4B; 253 public static final int VK_L = 0x4C; 254 public static final int VK_M = 0x4D; 255 public static final int VK_N = 0x4E; 256 public static final int VK_O = 0x4F; 257 public static final int VK_P = 0x50; 258 public static final int VK_Q = 0x51; 259 public static final int VK_R = 0x52; 260 public static final int VK_S = 0x53; 261 public static final int VK_T = 0x54; 262 public static final int VK_U = 0x55; 263 public static final int VK_V = 0x56; 264 public static final int VK_W = 0x57; 265 public static final int VK_X = 0x58; 266 public static final int VK_Y = 0x59; 267 public static final int VK_Z = 0x5A; 268 269 272 public static final int VK_OPEN_BRACKET = 0x5B; 273 274 277 public static final int VK_BACK_SLASH = 0x5C; 278 279 282 public static final int VK_CLOSE_BRACKET = 0x5D; 283 284 public static final int VK_NUMPAD0 = 0x60; 285 public static final int VK_NUMPAD1 = 0x61; 286 public static final int VK_NUMPAD2 = 0x62; 287 public static final int VK_NUMPAD3 = 0x63; 288 public static final int VK_NUMPAD4 = 0x64; 289 public static final int VK_NUMPAD5 = 0x65; 290 public static final int VK_NUMPAD6 = 0x66; 291 public static final int VK_NUMPAD7 = 0x67; 292 public static final int VK_NUMPAD8 = 0x68; 293 public static final int VK_NUMPAD9 = 0x69; 294 public static final int VK_MULTIPLY = 0x6A; 295 public static final int VK_ADD = 0x6B; 296 297 302 public static final int VK_SEPARATER = 0x6C; 303 304 308 public static final int VK_SEPARATOR = VK_SEPARATER; 309 310 public static final int VK_SUBTRACT = 0x6D; 311 public static final int VK_DECIMAL = 0x6E; 312 public static final int VK_DIVIDE = 0x6F; 313 public static final int VK_DELETE = 0x7F; 314 public static final int VK_NUM_LOCK = 0x90; 315 public static final int VK_SCROLL_LOCK = 0x91; 316 317 318 public static final int VK_F1 = 0x70; 319 320 321 public static final int VK_F2 = 0x71; 322 323 324 public static final int VK_F3 = 0x72; 325 326 327 public static final int VK_F4 = 0x73; 328 329 330 public static final int VK_F5 = 0x74; 331 332 333 public static final int VK_F6 = 0x75; 334 335 336 public static final int VK_F7 = 0x76; 337 338 339 public static final int VK_F8 = 0x77; 340 341 342 public static final int VK_F9 = 0x78; 343 344 345 public static final int VK_F10 = 0x79; 346 347 348 public static final int VK_F11 = 0x7A; 349 350 351 public static final int VK_F12 = 0x7B; 352 353 357 358 public static final int VK_F13 = 0xF000; 359 360 364 public static final int VK_F14 = 0xF001; 365 366 370 public static final int VK_F15 = 0xF002; 371 372 376 public static final int VK_F16 = 0xF003; 377 378 382 public static final int VK_F17 = 0xF004; 383 384 388 public static final int VK_F18 = 0xF005; 389 390 394 public static final int VK_F19 = 0xF006; 395 396 400 public static final int VK_F20 = 0xF007; 401 402 406 public static final int VK_F21 = 0xF008; 407 408 412 public static final int VK_F22 = 0xF009; 413 414 418 public static final int VK_F23 = 0xF00A; 419 420 424 public static final int VK_F24 = 0xF00B; 425 426 public static final int VK_PRINTSCREEN = 0x9A; 427 public static final int VK_INSERT = 0x9B; 428 public static final int VK_HELP = 0x9C; 429 public static final int VK_META = 0x9D; 430 431 public static final int VK_BACK_QUOTE = 0xC0; 432 public static final int VK_QUOTE = 0xDE; 433 434 439 public static final int VK_KP_UP = 0xE0; 440 441 446 public static final int VK_KP_DOWN = 0xE1; 447 448 453 public static final int VK_KP_LEFT = 0xE2; 454 455 460 public static final int VK_KP_RIGHT = 0xE3; 461 462 463 464 public static final int VK_DEAD_GRAVE = 0x80; 465 466 public static final int VK_DEAD_ACUTE = 0x81; 467 468 public static final int VK_DEAD_CIRCUMFLEX = 0x82; 469 470 public static final int VK_DEAD_TILDE = 0x83; 471 472 public static final int VK_DEAD_MACRON = 0x84; 473 474 public static final int VK_DEAD_BREVE = 0x85; 475 476 public static final int VK_DEAD_ABOVEDOT = 0x86; 477 478 public static final int VK_DEAD_DIAERESIS = 0x87; 479 480 public static final int VK_DEAD_ABOVERING = 0x88; 481 482 public static final int VK_DEAD_DOUBLEACUTE = 0x89; 483 484 public static final int VK_DEAD_CARON = 0x8a; 485 486 public static final int VK_DEAD_CEDILLA = 0x8b; 487 488 public static final int VK_DEAD_OGONEK = 0x8c; 489 490 public static final int VK_DEAD_IOTA = 0x8d; 491 492 public static final int VK_DEAD_VOICED_SOUND = 0x8e; 493 494 public static final int VK_DEAD_SEMIVOICED_SOUND = 0x8f; 495 496 497 public static final int VK_AMPERSAND = 0x96; 498 499 public static final int VK_ASTERISK = 0x97; 500 501 public static final int VK_QUOTEDBL = 0x98; 502 503 public static final int VK_LESS = 0x99; 504 505 506 public static final int VK_GREATER = 0xa0; 507 508 public static final int VK_BRACELEFT = 0xa1; 509 510 public static final int VK_BRACERIGHT = 0xa2; 511 512 516 public static final int VK_AT = 0x0200; 517 518 522 public static final int VK_COLON = 0x0201; 523 524 528 public static final int VK_CIRCUMFLEX = 0x0202; 529 530 534 public static final int VK_DOLLAR = 0x0203; 535 536 540 public static final int VK_EURO_SIGN = 0x0204; 541 542 546 public static final int VK_EXCLAMATION_MARK = 0x0205; 547 548 552 public static final int VK_INVERTED_EXCLAMATION_MARK = 0x0206; 553 554 558 public static final int VK_LEFT_PARENTHESIS = 0x0207; 559 560 564 public static final int VK_NUMBER_SIGN = 0x0208; 565 566 570 public static final int VK_PLUS = 0x0209; 571 572 576 public static final int VK_RIGHT_PARENTHESIS = 0x020A; 577 578 582 public static final int VK_UNDERSCORE = 0x020B; 583 584 590 public static final int VK_WINDOWS = 0x020C; 591 592 596 public static final int VK_CONTEXT_MENU = 0x020D; 597 598 599 600 601 public static final int VK_FINAL = 0x0018; 602 603 604 605 public static final int VK_CONVERT = 0x001C; 606 607 608 609 public static final int VK_NONCONVERT = 0x001D; 610 611 612 613 public static final int VK_ACCEPT = 0x001E; 614 615 616 public static final int VK_MODECHANGE = 0x001F; 617 618 620 public static final int VK_KANA = 0x0015; 621 622 624 public static final int VK_KANJI = 0x0019; 625 626 630 631 public static final int VK_ALPHANUMERIC = 0x00F0; 632 633 637 638 public static final int VK_KATAKANA = 0x00F1; 639 640 644 645 public static final int VK_HIRAGANA = 0x00F2; 646 647 651 652 public static final int VK_FULL_WIDTH = 0x00F3; 653 654 658 659 public static final int VK_HALF_WIDTH = 0x00F4; 660 661 665 666 public static final int VK_ROMAN_CHARACTERS = 0x00F5; 667 668 672 673 public static final int VK_ALL_CANDIDATES = 0x0100; 674 675 679 680 public static final int VK_PREVIOUS_CANDIDATE = 0x0101; 681 682 686 687 public static final int VK_CODE_INPUT = 0x0102; 688 689 694 695 public static final int VK_JAPANESE_KATAKANA = 0x0103; 696 697 702 703 public static final int VK_JAPANESE_HIRAGANA = 0x0104; 704 705 710 711 public static final int VK_JAPANESE_ROMAN = 0x0105; 712 713 718 719 public static final int VK_KANA_LOCK = 0x0106; 720 721 725 726 public static final int VK_INPUT_METHOD_ON_OFF = 0x0107; 727 728 729 730 public static final int VK_CUT = 0xFFD1; 731 732 public static final int VK_COPY = 0xFFCD; 733 734 public static final int VK_PASTE = 0xFFCF; 735 736 public static final int VK_UNDO = 0xFFCB; 737 738 public static final int VK_AGAIN = 0xFFC9; 739 740 public static final int VK_FIND = 0xFFD0; 741 742 public static final int VK_PROPS = 0xFFCA; 743 744 public static final int VK_STOP = 0xFFC8; 745 746 750 public static final int VK_COMPOSE = 0xFF20; 751 752 756 public static final int VK_ALT_GRAPH = 0xFF7E; 757 758 762 public static final int VK_BEGIN = 0xFF58; 763 764 769 public static final int VK_UNDEFINED = 0x0; 770 771 775 public static final char CHAR_UNDEFINED = 0xFFFF; 776 777 784 public static final int KEY_LOCATION_UNKNOWN = 0; 785 786 794 public static final int KEY_LOCATION_STANDARD = 1; 795 796 802 public static final int KEY_LOCATION_LEFT = 2; 803 804 810 public static final int KEY_LOCATION_RIGHT = 3; 811 812 818 public static final int KEY_LOCATION_NUMPAD = 4; 819 820 831 int keyCode; 832 833 842 char keyChar; 843 844 858 int keyLocation; 859 860 private transient long rawCode = 0; 862 863 866 private static final long serialVersionUID = -2352130953028126954L; 867 868 static { 869 870 NativeLibLoader.loadLibraries(); 871 if (!GraphicsEnvironment.isHeadless()) { 872 initIDs(); 873 } 874 } 875 876 880 private static native void initIDs(); 881 882 920 private KeyEvent(Component source, int id, long when, int modifiers, 921 int keyCode, char keyChar, int keyLocation, boolean isProxyActive) { 922 this(source, id, when, modifiers, keyCode, keyChar, keyLocation); 923 this.isProxyActive = isProxyActive; 924 } 925 public KeyEvent(Component source, int id, long when, int modifiers, 926 int keyCode, char keyChar, int keyLocation) { 927 super(source, id, when, modifiers); 928 if (id == KEY_TYPED) { 929 if (keyChar == CHAR_UNDEFINED) { 930  
|