【问题标题】:java Get keycode from Stringjava从字符串中获取keycode
【发布时间】:2013-07-09 14:53:08
【问题描述】:

如何从字符串中获取键码? 键码将用于 Keyboard.isKeyDown()。

我试过了

char ch = key.charAt(0);
KeyStroke ks = KeyStroke.getKeyStroke(key.charAt(0), 0);
int keycode = ks.getKeyCode();

但它给了我错误的键码,

我也试过

char ch = key.charAt(0);
int keycode = ch;

我得到了同样的结果,完全错误的键码

那么这甚至可能吗?如果是,那怎么办?

【问题讨论】:

  • @Andreas_D 哎呀..我错过了。
  • @johnchen902 字符串...比如“f”
  • @johnchen902 不,它返回 70 而不是 33(就像我尝试过的所有其他的一样。)(键:F)
  • @user2418798 你在用 LWJGL 吗?
  • @user2418798 然后检查LWJGL's API document。也许int getKeyIndex(java.lang.String keyName) 是你想要的。

标签: java keyboard key lwjgl keycode


【解决方案1】:

AWT/Swing 使用标准 ASCII 值作为键码,即 A 映射到 65(即 KeyEvent.VK_A = 65);但是,LWJGL 使用不同的编码方案,这就是从 KeyStroke 派生的值不正确的原因。相反,您可能想使用getKeyIndex 方法:

public static int getKeyIndex(java.lang.String keyName)

获取一个键的索引。如果密钥无法识别,则返回 KEY_NONE。

参数: keyName - 键名

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 2013-06-27
    • 2017-10-16
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多