【问题标题】:Java key input is different to KeyEvent's VK keysJava 键输入不同于 KeyEvent 的 VK 键
【发布时间】:2014-08-04 14:06:18
【问题描述】:

我正在尝试将我从键侦听器的KeyEvent.getKeyCode() 获得的键代码与KeyEvent.VK_SLASH 之类的键代码进行比较,但是当我按下斜线键时(我知道它是斜线,因为它显示 /),比较(if(e.getKeyCode() == KeyEvent.VK_SLASH)) 是错误的。

但是,当我将其与 KeyEvent.VK_DEAD_ACUTE 进行比较时,它返回 true。

ABCD 或数字等其他键很好,但 ` 和 / 等一些键不同。

这是为什么?我该如何解决这个问题?

编辑:其他键(例如 ')也会受到影响,因为它会生成 . And pressing the 键给我 VK_DEFINED

【问题讨论】:

  • VK_SLASH 也可以是反斜杠,对吧?像这样 -> \\.
  • 还有你用的是什么类型的键盘?
  • 什么操作系统?什么版本的Java。在 MacOS 上运行正常
  • 我在 Windows 7 上。我使用的键盘是 90 年代的非常旧的 SIEMENS 键盘......但是按斜杠键确实给了我一个“/”,所以我怀疑它是键盘故障。反斜杠键有自己的键码KeyEvent.VK_BACKSLASH
  • 我认为 Anubian Noob 的意思是您使用的是什么键盘 layout

标签: java awt keylistener keyevent


【解决方案1】:

也许可以尝试使用

Key = e.getKeyCode();

然后做

if( Key == KeyEvent.VK_SLASH){
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多