Module java.desktop
Package java.awt.event

Class KeyEvent

所有已实现的接口:
Serializable
直接已知的子类:
MenuKeyEvent

public non-sealed class KeyEvent extends InputEvent
表示在组件中发生按键事件的事件。

当按下、释放或键入键时,此低级事件由组件对象(例如文本字段)生成。事件传递给每个使用组件的addKeyListener方法注册接收此类事件的KeyListenerKeyAdapter对象。(KeyAdapter对象实现KeyListener接口。)每个此类监听器对象在事件发生时都会收到此KeyEvent

“键入”事件是更高级的事件,通常不依赖于平台或键盘布局。它们在输入Unicode字符时生成,并且是查找有关字符输入的首选方法。在最简单的情况下,通过单个按键(例如,“a”)生成按键事件。然而,通常情况下,字符是通过一系列按键(例如,“shift”+“a”)生成的,从按键事件到按键事件的映射可能是多对一或多对多的。通常不需要释放按键来生成按键事件,但有些情况下,直到释放按键(例如,在Windows中通过Alt-Numpad方法输入ASCII序列)才会生成按键事件。对于不生成Unicode字符的按键(例如,操作键、修饰键等),不会生成按键事件。

getKeyChar方法始终返回有效的Unicode字符或CHAR_UNDEFINED。字符输入由KEY_TYPED事件报告:KEY_PRESSED和KEY_RELEASED事件不一定与字符输入相关联。因此,getKeyChar方法的结果仅对KEY_TYPED事件有意义。

对于按下和释放事件,getKeyCode方法返回事件的keyCode。对于按键事件,getKeyCode方法始终返回VK_UNDEFINEDgetExtendedKeyCode方法也可用于许多国际键盘布局。

“按下”和“释放”事件是更低级的事件,取决于平台和键盘布局。每当按下或释放按键时生成这些事件,并且是查找不生成字符输入的按键(例如,操作键、修饰键等)的唯一方法。按下或释放的按键由getKeyCodegetExtendedKeyCode方法指示,它们返回虚拟键码。

虚拟键码用于报告按下的键盘键,而不是由一个或多个按键组合生成的字符(例如,“A”,它来自Shift和“a”)。

例如,按下Shift键将导致具有VK_SHIFT keyCode的KEY_PRESSED事件,而按下“a”键将导致VK_A keyCode。释放“a”键后,将触发具有VK_A的KEY_RELEASED事件。另外,将生成具有键字符值“A”的KEY_TYPED事件。

在键盘上按下和释放按键会生成以下按键事件(按顺序):

    KEY_PRESSED
    KEY_TYPED(仅在可以生成有效的Unicode字符时生成。)
    KEY_RELEASED
 
但在某些情况下(例如自动重复或激活输入法),顺序可能不同(并且依赖于平台)。

注意:

  • 不会生成不生成Unicode字符的按键组合的KEY_TYPED事件,例如F1和HELP键等操作键。
  • 并非所有键盘或系统都能生成所有虚拟键码。Java中不会尝试人工生成这些键。
  • 虚拟键码不标识物理键:它们取决于平台和键盘布局。例如,使用美国键盘布局时生成VK_Q的键将在使用法国键盘布局时生成VK_A。
  • 使用美国键盘布局时生成VK_Q的键也会在俄语或希伯来语布局中生成唯一代码。这些代码可以通过getExtendedKeyCode获得,并且在使用VK_常量时使用。
  • 并非所有字符都有与之关联的键码。例如,问号没有键码,因为没有键盘上的主要层中出现它。
  • 为了支持平台独立处理操作键,Java平台使用了一些额外的虚拟键常量,用于必须通过解释虚拟键码和修饰符来识别的功能。例如,对于日语Windows键盘,返回VK_CONVERT而不是带有ALT修饰符的VK_ALL_CANDIDATES。
  • 如在焦点规范中指定的,默认情况下,键事件被分派给焦点所有者。

警告:除了Java语言定义的那些键(VK_ENTER、VK_BACK_SPACE和VK_TAB),不要依赖VK_常量的值。平台管理者保留根据需要更改这些值以适应将来更广泛范围的键盘的权利。

如果任何特定KeyEvent实例的id参数不在KEY_FIRSTKEY_LAST范围内,将导致未指定的行为。

自:
1.1
参见:
  • Field Details

    • KEY_FIRST

      public static final int KEY_FIRST
      用于键事件的ID范围中的第一个数字。
      参见:
    • KEY_LAST

      public static final int KEY_LAST
      用于键事件的ID范围中的最后一个数字。
      参见:
    • KEY_TYPED

      public static final int KEY_TYPED
      "键入"事件。当输入字符时生成此事件。在最简单的情况下,它由单个按键触发。然而,字符通常由一系列按键触发,并且从按下事件到键入事件的映射可能是多对一或多对多的。
      参见:
    • KEY_PRESSED

      public static final int KEY_PRESSED
      "按下"事件。当按下键时生成此事件。
      参见:
    • KEY_RELEASED

      public static final int KEY_RELEASED
      "释放"事件。当释放键时生成此事件。
      参见:
    • VK_ENTER

      public static final int VK_ENTER
      ENTER虚拟键的常量。
      参见:
    • VK_BACK_SPACE

      public static final int VK_BACK_SPACE
      BACK_SPACE虚拟键的常量。
      参见:
    • VK_TAB

      public static final int VK_TAB
      TAB虚拟键的常量。
      参见:
    • VK_CANCEL

      public static final int VK_CANCEL
      CANCEL虚拟键的常量。
      参见:
    • VK_CLEAR

      public static final int VK_CLEAR
      CLEAR虚拟键的常量。
      参见:
    • VK_SHIFT

      public static final int VK_SHIFT
      SHIFT虚拟键的常量。
      参见:
    • VK_CONTROL

      public static final int VK_CONTROL
      CONTROL虚拟键的常量。
      参见:
    • VK_ALT

      public static final int VK_ALT
      ALT虚拟键的常量。
      参见:
    • VK_PAUSE

      public static final int VK_PAUSE
      PAUSE虚拟键的常量。
      参见:
    • VK_CAPS_LOCK

      public static final int VK_CAPS_LOCK
      CAPS_LOCK虚拟键的常量。
      参见:
    • VK_ESCAPE

      public static final int VK_ESCAPE
      ESCAPE虚拟键的常量。
      参见:
    • VK_SPACE

      public static final int VK_SPACE
      SPACE虚拟键的常量。
      参见:
    • VK_PAGE_UP

      public static final int VK_PAGE_UP
      PAGE_UP虚拟键的常量。
      参见:
    • VK_PAGE_DOWN

      public static final int VK_PAGE_DOWN
      PAGE_DOWN虚拟键的常量。
      参见:
    • VK_END

      public static final int VK_END
      END虚拟键的常量。
      参见:
    • VK_HOME

      public static final int VK_HOME
      HOME虚拟键的常量。
      参见:
    • VK_LEFT

      public static final int VK_LEFT
      非数字键盘左箭头键的常量。
      参见:
    • VK_UP

      public static final int VK_UP
      非数字键盘上箭头键的常量。
      参见:
    • VK_RIGHT

      public static final int VK_RIGHT
      非数字键盘右箭头键的常量。
      参见:
    • VK_DOWN

      public static final int VK_DOWN
      非数字键盘下箭头键的常量。
      参见:
    • VK_COMMA

      public static final int VK_COMMA
      逗号键的常量,","
      参见:
    • VK_MINUS

      public static final int VK_MINUS
      减号键的常量,"-"
      自JDK版本:
      1.2
      参见:
    • VK_PERIOD

      public static final int VK_PERIOD
      句点键的常量,"."
      参见:
    • VK_SLASH

      public static final int VK_SLASH
      斜杠键的常量,"/"
      参见:
    • VK_0

      public static final int VK_0
      "0"键的常量。
      参见:
    • VK_1

      public static final int VK_1
      "1"键的常量。
      参见:
    • VK_2

      public static final int VK_2
      "2"键的常量。
      参见:
    • VK_3

      public static final int VK_3
      "3"键的常量。
      参见:
    • VK_4

      public static final int VK_4
      "4"键的常量。
      参见:
    • VK_5

      public static final int VK_5
      "5"键的常量。
      参见:
    • VK_6

      public static final int VK_6
      "6"键的常量。
      参见:
    • VK_7

      public static final int VK_7
      "7"键的常量。
      参见:
    • VK_8

      public static final int VK_8
      "8"键的常量。
      参见:
    • VK_9

      public static final int VK_9
      "9"键的常量。
      参见:
    • VK_SEMICOLON

      public static final int VK_SEMICOLON
      分号键的常量,";"
      参见:
    • VK_EQUALS

      public static final int VK_EQUALS
      等号键的常量,"="
      参见:
    • VK_A

      public static final int VK_A
      "A"键的常量。
      参见:
    • VK_B

      public static final int VK_B
      "B"键的常量。
      参见:
    • VK_C

      public static final int VK_C
      "C"键的常量。
      参见:
    • VK_D

      public static final int VK_D
      "D"键的常量。
      参见:
    • VK_E

      public static final int VK_E
      "E"键的常量。
      参见:
    • VK_F

      public static final int VK_F
      "F"键的常量。
      参见:
    • VK_G

      public static final int VK_G
      "G"键的常量。
      参见:
    • VK_H

      public static final int VK_H
      "H"键的常量。
      参见:
    • VK_I

      public static final int VK_I
      "I"键的常量。
      参见:
    • VK_J

      public static final int VK_J
      "J"键的常量。
      参见:
    • VK_K

      public static final int VK_K
      "K"键的常量。
      参见:
    • VK_L

      public static final int VK_L
      "L"键的常量。
      参见:
    • VK_M

      public static final int VK_M
      "M"键的常量。
      参见:
    • VK_N

      public static final int VK_N
      "N"键的常量。
      参见:
    • VK_O

      public static final int VK_O
      "O"键的常量。
      参见:
    • VK_P

      public static final int VK_P
      "P"键的常量。
      参见:
    • VK_Q

      public static final int VK_Q
      "Q"键的常量。
      参见:
    • VK_R

      public static final int VK_R
      "R"键的常量。
      参见:
    • VK_S

      public static final int VK_S
      "S"键的常量。
      参见:
    • VK_T

      public static final int VK_T
      "T"键的常量。
      参见:
    • VK_U

      public static final int VK_U
      "U"键的常量。
      参见:
    • VK_V

      public static final int VK_V
      "V"键的常量。
      参见:
    • VK_W

      public static final int VK_W
      "W"键的常量。
      参见:
    • VK_X

      public static final int VK_X
      "X"键的常量。
      参见:
    • VK_Y

      public static final int VK_Y
      "Y"键的常量。
      参见:
    • VK_Z

      public static final int VK_Z
      "Z"键的常量。
      参见:
    • VK_OPEN_BRACKET

      public static final int VK_OPEN_BRACKET
      开方括号键的常量,"["
      参见:
    • VK_BACK_SLASH

      public static final int VK_BACK_SLASH
      反斜杠键的常量,"\"
      参见:
    • VK_CLOSE_BRACKET

      public static final int VK_CLOSE_BRACKET
      闭方括号键的常量,"]"
      参见:
    • VK_NUMPAD0

      public static final int VK_NUMPAD0
      数字键盘 "0" 键的常量。
      参见:
    • VK_NUMPAD1

      public static final int VK_NUMPAD1
      数字键盘 "1" 键的常量。
      参见:
    • VK_NUMPAD2

      public static final int VK_NUMPAD2
      数字键盘 "2" 键的常量。
      参见:
    • VK_NUMPAD3

      public static final int VK_NUMPAD3
      数字键盘 "3" 键的常量。
      参见:
    • VK_NUMPAD4

      public static final int VK_NUMPAD4
      数字键盘 "4" 键的常量。
      参见:
    • VK_NUMPAD5

      public static final int VK_NUMPAD5
      数字键盘 "5" 键的常量。
      参见:
    • VK_NUMPAD6

      public static final int VK_NUMPAD6
      数字键盘 "6" 键的常量。
      参见:
    • VK_NUMPAD7

      public static final int VK_NUMPAD7
      数字键盘 "7" 键的常量。
      参见:
    • VK_NUMPAD8

      public static final int VK_NUMPAD8
      数字键盘 "8" 键的常量。
      参见:
    • VK_NUMPAD9

      public static final int VK_NUMPAD9
      数字键盘 "9" 键的常量。
      参见:
    • VK_MULTIPLY

      public static final int VK_MULTIPLY
      数字键盘乘号键的常量。
      参见:
    • VK_ADD

      public static final int VK_ADD
      数字键盘加号键的常量。
      参见:
    • VK_SEPARATER

      public static final int VK_SEPARATER
      此常量已过时,仅用于向后兼容。
      参见:
    • VK_SEPARATOR

      public static final int VK_SEPARATOR
      数字键盘分隔键的常量。
      自:
      1.4
      参见:
    • VK_SUBTRACT

      public static final int VK_SUBTRACT
      数字键盘减号键的常量。
      参见:
    • VK_DECIMAL

      public static final int VK_DECIMAL
      数字键盘小数点键的常量。
      参见:
    • VK_DIVIDE

      public static final int VK_DIVIDE
      数字键盘除号键的常量。
      参见:
    • VK_DELETE

      public static final int VK_DELETE
      删除键的常量。
      参见:
    • VK_NUM_LOCK

      public static final int VK_NUM_LOCK
      NUM_LOCK 键的常量。
      参见:
    • VK_SCROLL_LOCK

      public static final int VK_SCROLL_LOCK
      SCROLL_LOCK 键的常量。
      参见:
    • VK_F1

      public static final int VK_F1
      F1 功能键的常量。
      参见:
    • VK_F2

      public static final int VK_F2
      F2功能键的常量。
      参见:
    • VK_F3

      public static final int VK_F3
      F3功能键的常量。
      参见:
    • VK_F4

      public static final int VK_F4
      F4功能键的常量。
      参见:
    • VK_F5

      public static final int VK_F5
      F5功能键的常量。
      参见:
    • VK_F6

      public static final int VK_F6
      F6功能键的常量。
      参见:
    • VK_F7

      public static final int VK_F7
      F7功能键的常量。
      参见:
    • VK_F8

      public static final int VK_F8
      F8功能键的常量。
      参见:
    • VK_F9

      public static final int VK_F9
      F9功能键的常量。
      参见:
    • VK_F10

      public static final int VK_F10
      F10功能键的常量。
      参见:
    • VK_F11

      public static final int VK_F11
      F11功能键的常量。
      参见:
    • VK_F12

      public static final int VK_F12
      F12功能键的常量。
      参见:
    • VK_F13

      public static final int VK_F13
      F13功能键的常量。
      自:
      1.2
      参见:
    • VK_F14

      public static final int VK_F14
      F14功能键的常量。
      自:
      1.2
      参见:
    • VK_F15

      public static final int VK_F15
      F15功能键的常量。
      自:
      1.2
      参见:
    • VK_F16

      public static final int VK_F16
      F16功能键的常量。
      自:
      1.2
      参见:
    • VK_F17

      public static final int VK_F17
      F17功能键的常量。
      自:
      1.2
      参见:
    • VK_F18

      public static final int VK_F18
      F18功能键的常量。
      自:
      1.2
      参见:
    • VK_F19

      public static final int VK_F19
      F19功能键的常量。
      自:
      1.2
      参见:
    • VK_F20

      public static final int VK_F20
      F20功能键的常量。
      自:
      1.2
      参见:
    • VK_F21

      public static final int VK_F21
      F21功能键的常量。
      自:
      1.2
      参见:
    • VK_F22

      public static final int VK_F22
      F22功能键的常量。
      自:
      1.2
      参见:
    • VK_F23

      public static final int VK_F23
      F23功能键的常量。
      自:
      1.2
      参见:
    • VK_F24

      public static final int VK_F24
      F24功能键的常量。
      自:
      1.2
      参见:
    • VK_PRINTSCREEN

      public static final int VK_PRINTSCREEN
      PRINTSCREEN键的常量。
      参见:
    • VK_INSERT

      public static final int VK_INSERT
      INSERT键的常量。
      参见:
    • VK_HELP

      public static final int VK_HELP
      HELP键的常量。
      参见:
    • VK_META

      public static final int VK_META
      META键的常量。
      参见:
    • VK_BACK_QUOTE

      public static final int VK_BACK_QUOTE
      BACK_QUOTE键的常量。
      参见:
    • VK_QUOTE

      public static final int VK_QUOTE
      QUOTE键的常量。
      参见:
    • VK_KP_UP

      public static final int VK_KP_UP
      数字键盘箭头键的常量。
      自:
      1.2
      参见:
    • VK_KP_DOWN

      public static final int VK_KP_DOWN
      数字键盘箭头键的常量。
      自:
      1.2
      参见:
    • VK_KP_LEFT

      public static final int VK_KP_LEFT
      数字键盘箭头键的常量。
      自:
      1.2
      参见:
    • VK_KP_RIGHT

      public static final int VK_KP_RIGHT
      数字键盘箭头键的常量。
      自:
      1.2
      参见:
    • VK_DEAD_GRAVE

      public static final int VK_DEAD_GRAVE
      Dead Grave键的常量。
      自:
      1.2
      参见:
    • VK_DEAD_ACUTE

      public static final int VK_DEAD_ACUTE
      Dead Acute键的常量。
      自:
      1.2
      参见:
    • VK_DEAD_CIRCUMFLEX

      public static final int VK_DEAD_CIRCUMFLEX
      Dead Circumflex键的常量。
      自:
      1.2
      参见:
    • VK_DEAD_TILDE

      public static final int VK_DEAD_TILDE
      Dead Tilde键的常量。
      自:
      1.2
      参见:
    • VK_DEAD_MACRON

      public static final int VK_DEAD_MACRON
      Dead Macron键的常量。
      自:
      1.2
      参见:
    • VK_DEAD_BREVE

      public static final int VK_DEAD_BREVE
      Dead Breve键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_ABOVEDOT

      public static final int VK_DEAD_ABOVEDOT
      死点上方点键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_DIAERESIS

      public static final int VK_DEAD_DIAERESIS
      死分音符键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_ABOVERING

      public static final int VK_DEAD_ABOVERING
      死上方环键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_DOUBLEACUTE

      public static final int VK_DEAD_DOUBLEACUTE
      死双重重音符键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_CARON

      public static final int VK_DEAD_CARON
      死锐音符键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_CEDILLA

      public static final int VK_DEAD_CEDILLA
      死尖音符键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_OGONEK

      public static final int VK_DEAD_OGONEK
      死尾勾音符键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_IOTA

      public static final int VK_DEAD_IOTA
      死伊奥塔键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_VOICED_SOUND

      public static final int VK_DEAD_VOICED_SOUND
      死有声音键的常量。
      自从:
      1.2
      参见:
    • VK_DEAD_SEMIVOICED_SOUND

      public static final int VK_DEAD_SEMIVOICED_SOUND
      死半有声音键的常量。
      自从:
      1.2
      参见:
    • VK_AMPERSAND

      public static final int VK_AMPERSAND
      "&"键的常量。
      自从:
      1.2
      参见:
    • VK_ASTERISK

      public static final int VK_ASTERISK
      "*"键的常量。
      自从:
      1.2
      参见:
    • VK_QUOTEDBL

      public static final int VK_QUOTEDBL
      """"键的常量。
      自从:
      1.2
      参见:
    • VK_LESS

      public static final int VK_LESS
      "<"键的常量。
      自从:
      1.2
      参见:
    • VK_GREATER

      public static final int VK_GREATER
      ">"键的常量。
      自从:
      1.2
      参见:
    • VK_BRACELEFT

      public static final int VK_BRACELEFT
      "{"键的常量。
      自从:
      1.2
      参见:
    • VK_BRACERIGHT

      public static final int VK_BRACERIGHT
      "}"键的常量。
      自从:
      1.2
      参见:
    • VK_AT

      public static final int VK_AT
      "@"键的常量。
      自从:
      1.2
      参见:
    • VK_COLON

      public static final int VK_COLON
      ":"键的常量。
      自从:
      1.2
      参见:
    • VK_CIRCUMFLEX

      public static final int VK_CIRCUMFLEX
      "^"键的常量。
      自从:
      1.2
      参见:
    • VK_DOLLAR

      public static final int VK_DOLLAR
      "$"键的常量。
      自从:
      1.2
      参见:
    • VK_EURO_SIGN

      public static final int VK_EURO_SIGN
      欧元货币符号键的常量。
      自从:
      1.2
      参见:
    • VK_EXCLAMATION_MARK

      public static final int VK_EXCLAMATION_MARK
      "!"键的常量。
      自从:
      1.2
      参见:
    • VK_INVERTED_EXCLAMATION_MARK

      public static final int VK_INVERTED_EXCLAMATION_MARK
      倒置感叹号键的常量。
      自从:
      1.2
      参见:
    • VK_LEFT_PARENTHESIS

      public static final int VK_LEFT_PARENTHESIS
      "("键的常量。
      自从:
      1.2
      参见:
    • VK_NUMBER_SIGN

      public static final int VK_NUMBER_SIGN
      "#"键的常量。
      自从:
      1.2
      参见:
    • VK_PLUS

      public static final int VK_PLUS
      "+"键的常量。
      自从:
      1.2
      参见:
    • VK_RIGHT_PARENTHESIS

      public static final int VK_RIGHT_PARENTHESIS
      ")"键的常量。
      自从:
      1.2
      参见:
    • VK_UNDERSCORE

      public static final int VK_UNDERSCORE
      "_"键的常量。
      自从:
      1.2
      参见:
    • VK_WINDOWS

      public static final int VK_WINDOWS
      Microsoft Windows "Windows"键的常量。用于左右两个版本的键。
      自从:
      1.5
      参见:
    • VK_CONTEXT_MENU

      public static final int VK_CONTEXT_MENU
      Microsoft Windows上下文菜单键的常量。
      自从:
      1.5
      参见:
    • VK_FINAL

      public static final int VK_FINAL
      FINAL键的常量。
      参见:
    • VK_CONVERT

      public static final int VK_CONVERT
      转换功能键的常量。
      参见:
    • VK_NONCONVERT

      public static final int VK_NONCONVERT
      不转换功能键的常量。
      参见:
    • VK_ACCEPT

      public static final int VK_ACCEPT
      接受或提交功能键的常量。
      参见:
    • VK_MODECHANGE

      public static final int VK_MODECHANGE
      MODECHANGE键的常量。
      See Also:
    • VK_KANA

      public static final int VK_KANA
      Constant for the KANA lock key.
      参见:
    • VK_KANJI

      public static final int VK_KANJI
      KANJI的常量。
      参见:
    • VK_ALPHANUMERIC

      public static final int VK_ALPHANUMERIC
      字母数字功能键的常量。
      自:
      1.2
      参见:
    • VK_KATAKANA

      public static final int VK_KATAKANA
      片假名功能键的常量。
      自:
      1.2
      参见:
    • VK_HIRAGANA

      public static final int VK_HIRAGANA
      平假名功能键的常量。
      自:
      1.2
      参见:
    • VK_FULL_WIDTH

      public static final int VK_FULL_WIDTH
      全角字符功能键的常量。
      自:
      1.2
      参见:
    • VK_HALF_WIDTH

      public static final int VK_HALF_WIDTH
      半角字符功能键的常量。
      自:
      1.2
      参见:
    • VK_ROMAN_CHARACTERS

      public static final int VK_ROMAN_CHARACTERS
      罗马字符功能键的常量。
      自:
      1.2
      参见:
    • VK_ALL_CANDIDATES

      public static final int VK_ALL_CANDIDATES
      所有候选人功能键的常量。
      自:
      1.2
      参见:
    • VK_PREVIOUS_CANDIDATE

      public static final int VK_PREVIOUS_CANDIDATE
      上一个候选人功能键的常量。
      自:
      1.2
      参见:
    • VK_CODE_INPUT

      public static final int VK_CODE_INPUT
      代码输入功能键的常量。
      自:
      1.2
      参见:
    • VK_JAPANESE_KATAKANA

      public static final int VK_JAPANESE_KATAKANA
      日文片假名功能键的常量。此键切换到日文输入法并选择片假名输入模式。
      自:
      1.2
      参见:
    • VK_JAPANESE_HIRAGANA

      public static final int VK_JAPANESE_HIRAGANA
      日文平假名功能键的常量。此键切换到日文输入法并选择平假名输入模式。
      自:
      1.2
      参见:
    • VK_JAPANESE_ROMAN

      public static final int VK_JAPANESE_ROMAN
      日文罗马字功能键的常量。此键切换到日文输入法并选择罗马直接输入模式。
      自:
      1.2
      参见:
    • VK_KANA_LOCK

      public static final int VK_KANA_LOCK
      锁定片假名功能键的常量。此键将键盘锁定为片假名布局。
      自:
      1.3
      参见:
    • VK_INPUT_METHOD_ON_OFF

      public static final int VK_INPUT_METHOD_ON_OFF
      输入法开/关键的常量。
      自:
      1.3
      参见:
    • VK_CUT

      public static final int VK_CUT
      剪切键的常量。
      自:
      1.2
      参见:
    • VK_COPY

      public static final int VK_COPY
      复制键的常量。
      自:
      1.2
      参见:
    • VK_PASTE

      public static final int VK_PASTE
      粘贴键的常量。
      自:
      1.2
      参见:
    • VK_UNDO

      public static final int VK_UNDO
      撤销键的常量。
      自:
      1.2
      参见:
    • VK_AGAIN

      public static final int VK_AGAIN
      再次键的常量。
      自:
      1.2
      参见:
    • VK_FIND

      public static final int VK_FIND
      查找键的常量。
      自:
      1.2
      参见:
    • VK_PROPS

      public static final int VK_PROPS
      属性键的常量。
      自:
      1.2
      参见:
    • VK_STOP

      public static final int VK_STOP
      停止键的常量。
      自:
      1.2
      参见:
    • VK_COMPOSE

      public static final int VK_COMPOSE
      组合功能键的常量。
      自:
      1.2
      参见:
    • VK_ALT_GRAPH

      public static final int VK_ALT_GRAPH
      AltGraph功能键的常量。
      自:
      1.2
      参见:
    • VK_BEGIN

      public static final int VK_BEGIN
      开始键的常量。
      自:
      1.5
      参见:
    • VK_UNDEFINED

      public static final int VK_UNDEFINED
      此值用于指示keyCode未知。KEY_TYPED事件没有keyCode值;而是使用此值。
      参见:
    • CHAR_UNDEFINED

      public static final char CHAR_UNDEFINED
      KEY_PRESSED和KEY_RELEASED事件中未映射到有效Unicode字符的键使用此键值。
      参见:
    • KEY_LOCATION_UNKNOWN

      public static final int KEY_LOCATION_UNKNOWN
      表示键位置不明确或不相关的常量。KEY_TYPED事件没有keyLocation;而是使用此值。
      自:
      1.4
      参见:
    • KEY_LOCATION_STANDARD

      public static final int KEY_LOCATION_STANDARD
      表示按下或释放的键未区分为键的左侧或右侧版本,并且不是从数字键盘发起的(或不是使用与数字键盘对应的虚拟键发起的)的常量。
      自:
      1.4
      参见:
    • KEY_LOCATION_LEFT

      public static final int KEY_LOCATION_LEFT
      表示按下或释放的键位于左侧键位置(此键有多个可能的位置)。例如:左Shift键。
      自:
      1.4
      参见:
    • KEY_LOCATION_RIGHT

      public static final int KEY_LOCATION_RIGHT
      表示按下或释放的键位于右侧键位置(此键有多个可能的位置)。例如:右Shift键。
      自:
      1.4
      参见:
    • KEY_LOCATION_NUMPAD

      public static final int KEY_LOCATION_NUMPAD
      表示键事件源自数字键盘或与数字键盘对应的虚拟键。
      自从:
      1.4
      参见:
  • Constructor Details

    • KeyEvent

      public KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar, int keyLocation)
      构造一个KeyEvent对象。

      如果sourcenull,则此方法会抛出IllegalArgumentException异常。

      参数:
      source - 产生事件的Component
      id - 表示事件类型的整数。有关允许值的信息,请参阅KeyEvent的类描述
      when - 指定事件发生的时间的长整型值。不建议传递负值或零值
      modifiers - 事件期间按下的修饰键(shift、ctrl、alt、meta)。不建议传递负值。零值表示未传递任何修饰键。在一个事件中使用扩展的_DOWN_MASK或旧的_MASK修饰符,但不要在一个事件中混合模型。推荐使用扩展修饰符
      keyCode - 实际按键的整数代码,或VK_UNDEFINED(用于按键类型事件)
      keyChar - 此事件生成的Unicode字符,或CHAR_UNDEFINED(对于不映射到有效Unicode字符的按键按下和按键释放事件)
      keyLocation - 标识按键位置。唯一合法的值是KEY_LOCATION_UNKNOWNKEY_LOCATION_STANDARDKEY_LOCATION_LEFTKEY_LOCATION_RIGHTKEY_LOCATION_NUMPAD
      抛出:
      IllegalArgumentException - 如果idKEY_TYPEDkeyCharCHAR_UNDEFINED;或者如果idKEY_TYPEDkeyCode不是VK_UNDEFINED;或者如果idKEY_TYPEDkeyLocation不是KEY_LOCATION_UNKNOWN;或者如果keyLocation不是上述合法值之一
      IllegalArgumentException - 如果source为null
      自从:
      1.4
      参见:
    • KeyEvent

      public KeyEvent(Component source, int id, long when, int modifiers, int keyCode, char keyChar)
      构造一个KeyEvent对象。

      如果sourcenull,则此方法会抛出IllegalArgumentException异常。

      参数:
      source - 产生事件的Component
      id - 表示事件类型的整数。有关允许值的信息,请参阅KeyEvent的类描述
      when - 指定事件发生的时间的长整型值。不建议传递负值或零值
      modifiers - 事件期间按下的修饰键(shift、ctrl、alt、meta)。不建议传递负值。零值表示未传递任何修饰键。在一个事件中使用扩展的_DOWN_MASK或旧的_MASK修饰符,但不要在一个事件中混合模型。推荐使用扩展修饰符
      keyCode - 实际按键的整数代码,或VK_UNDEFINED(用于按键类型事件)
      keyChar - 此事件生成的Unicode字符,或CHAR_UNDEFINED(对于不映射到有效Unicode字符的按键按下和按键释放事件)
      抛出:
      IllegalArgumentException - 如果idKEY_TYPEDkeyCharCHAR_UNDEFINED;或者如果idKEY_TYPEDkeyCode不是VK_UNDEFINED
      IllegalArgumentException - 如果source为null
      参见:
    • KeyEvent

      @Deprecated public KeyEvent(Component source, int id, long when, int modifiers, int keyCode)
      Deprecated.
      参数:
      source - 产生事件的Component
      id - 表示事件类型的整数。有关允许值的信息,请参阅KeyEvent的类描述
      when - 指定事件发生的时间的长整型值。不建议传递负值或零值
      modifiers - 事件期间按下的修饰键(shift、ctrl、alt、meta)。不建议传递负值。零值表示未传递任何修饰键。在一个事件中使用扩展的_DOWN_MASK或旧的_MASK修饰符,但不要在一个事件中混合模型。推荐使用扩展修饰符
      keyCode - 实际按键的整数代码,或VK_UNDEFINED(用于按键类型事件)
  • Method Details

    • getKeyCode

      public int getKeyCode()
      返回与此事件中的按键关联的整数keyCode。
      返回:
      键盘上实际按键的整数代码。(对于KEY_TYPED事件,keyCode为VK_UNDEFINED。)
    • setKeyCode

      public void setKeyCode(int keyCode)
      将keyCode值设置为指示物理按键。
      参数:
      keyCode - 对应于键盘上实际按键的整数。
    • getKeyChar

      public char getKeyChar()
      返回与此事件中的按键关联的字符。例如,对于shift + "a"的KEY_TYPED事件,返回值为"A"。

      KEY_PRESSEDKEY_RELEASED事件不适用于报告字符输入。因此,此方法返回的值仅对KEY_TYPED事件有意义。

      返回:
      此按键事件定义的Unicode字符。如果此按键事件没有有效的Unicode字符,则返回CHAR_UNDEFINED
    • setKeyChar

      public void setKeyChar(char keyChar)
      将keyChar值设置为指示逻辑字符。
      参数:
      keyChar - 与构成此事件的按键组合对应的字符。
    • setModifiers

      @Deprecated public void setModifiers(int modifiers)
      Deprecated.
      as of JDK1.1.4
      将修饰键设置为指示事件期间按下的其他键(例如shift、ctrl、alt、meta),定义为InputEvent的一部分。

      注意:不建议使用此方法,因为许多AWT实现不识别修饰键的更改。这在KEY_TYPED事件中尤其明显,其中shift修饰键发生变化。

      参数:
      modifiers - 修饰符常量的整数组合。
      参见:
    • getKeyLocation

      public int getKeyLocation()
      返回产生此按键事件的按键位置。键盘上的某些按键出现多次,例如左右shift键。此外,某些按键出现在数字键盘上。这提供了一种区分这些按键的方法。
      返回:
      按下或释放的按键的位置。对于KEY_TYPED事件,始终返回KEY_LOCATION_UNKNOWN
      自从:
      1.4
    • getKeyText

      public static String getKeyText(int keyCode)
      返回描述keyCode的字符串,例如"HOME"、"F1"或"A"。这些字符串可以通过更改awt.properties文件进行本地化。
      参数:
      keyCode - 要返回其描述的按键
      返回:
      包含由其keyCode标识的物理按键的文本描述的字符串
    • getKeyModifiersText

      @Deprecated(since="9") public static String getKeyModifiersText(int modifiers)
      Deprecated.
      It is recommended that extended modifier keys and InputEvent.getModifiersExText(int) be used instead
      返回描述修饰键的字符串,例如"Shift"或"Ctrl+Shift"。这些字符串可以通过更改awt.properties文件进行本地化。

      请注意,InputEvent.ALT_MASKInputEvent.BUTTON2_MASK具有相同的值,因此对于这两个修饰键都返回字符串"Alt"。同样,InputEvent.META_MASKInputEvent.BUTTON3_MASK具有相同的值,因此对于这两个修饰键都返回字符串"Meta"。

      参数:
      modifiers - 要处理的修饰符掩码
      返回:
      一个描述事件期间按下的修饰键组合的文本描述字符串
      参见:
    • isActionKey

      public boolean isActionKey()
      返回此事件中的按键是否为"操作"键。通常,操作键不会触发Unicode字符,也不是修饰键。
      返回:
      如果按键是"操作"键,则返回true,否则返回false
    • paramString

      public String paramString()
      返回标识此事件的参数字符串。此方法对于事件记录和调试很有用。
      覆盖:
      paramString 在类 ComponentEvent
      返回:
      标识事件及其属性的字符串
    • getExtendedKeyCode

      public int getExtendedKeyCode()
      返回事件的扩展键码。扩展键码是分配给键盘上的一个键的唯一标识,就像keyCode一样。但是,与keyCode不同,这个值取决于当前的键盘布局。例如,在常见的英语布局中按下左上角的字母键会产生与keyCode相同的值,VK_Q。在常规的俄语布局中按下相同的键会产生另一个代码,对于字母"Cyrillic I short"是唯一的。
      返回:
      事件的扩展键码
      自:
      1.7
    • getExtendedKeyCodeForChar

      public static int getExtendedKeyCodeForChar(int c)
      返回一个Unicode字符的扩展键码。
      参数:
      c - 要处理的Unicode字符
      返回:
      对于具有相应VK_常量的Unicode字符--此VK_常量;对于出现在已知键盘布局的主要级别上的字符--一个唯一的整数。如果一个字符不出现在已知键盘的主要级别上,则返回VK_UNDEFINED
      自:
      1.7