Java:keyCode、rawCode、primaryLevelUnicode、scancode,它们是什么?

标签 java jintellitype

我正在尝试模拟键盘敲击。当我按-时key,我收到以下事件。

各种代码的含义是什么?

[KEY_PRESSED, keyCode=45, keyText=Minus, keyChar='-', keyLocation=KEY_LOCATION_STANDARD, rawCode=189, primaryLevelUnicode=45, scancode=12]

最佳答案

  • KEY_PRESSED 是事件类型。
  • keyCode 是 key 的整数代码。请注意,并非所有字符都有与其关联的键码。例如,问号没有键码,因为没有其出现在主层上的键盘。您可以获取每个代码的列表here .
  • keyText 是角色的文本描述。
  • keyChar 是类型化的字符。
  • keyLocation 是发起此按键事件的按键的位置。有些键在键盘上出现多次,例如左右 Shift 键。此外,有些键出现在数字键盘上。这提供了一种区分这些键的方法。
  • 您可以获取原始 key 代码列表here 。请注意,存在用于人工输入字符的原始代码和用于处理按键的虚拟按键代码。
  • primaryLevelUnicode 我相信这是用于映射字符的图表。 Unicode 有多个级别的图表,主要用于比较(整理器)。
  • 每次按下一个键,scancode被发送到计算机以识别 key 。请参阅this answer更多细节。扫码即可获取列表here .

请注意,scancode 似乎仅适用于 MS Windows,如 KeyEvent 中的注释所示:

private transient long scancode = 0; // for MS Windows only

关于Java:keyCode、rawCode、primaryLevelUnicode、scancode,它们是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590595/

相关文章:

java - @Inject 在 Struts 2 中的 Jersey REST web 服务中不起作用

java - 如何在数组中打印 [ ] (Java)

java - 如果字符串至少包含一个c,那么我如何打印第一个 "c"的位置

java - 使用 Forge 启动 Minecraft 1.12.2 时出现错误 : Could not find or load main class net. minecraft.launchwrapper.Launch

java - 集成 apache tomcat 和 solr

java - Windows 锁定屏幕和注销屏幕上的全局热键?

java - Awt 机器人按键延迟

java - 运行 SikuliX 时无法加载 JIntellitype