当前位置:  开发笔记 > 编程语言 > 正文

从java中的任意char获取VK int

如何解决《从java中的任意char获取VKint》经验,为你挑选了2个好方法。

你如何从一个字母的字母中获取VK代码?看起来你应该能够做类似的事情javax.swing.KeyStroke.getKeyStroke('c').getKeyCode(),但这不起作用(结果为零).如果您已经拥有KeyEvent,每个人都知道如何获取密钥代码,但如果您只想将字符转换为VK整数,该怎么办?我对获取奇怪字符的FK代码不感兴趣,只有[AZ],[az],[0-9].

这个问题的背景--------我见过的所有机器人教程都假设程序员喜欢通过发送带有VK代码的按键来拼出单词:

int keyInput[] = {
      KeyEvent.VK_D,
      KeyEvent.VK_O,
      KeyEvent.VK_N,
      KeyEvent.VK_E
  };//end keyInput array

叫我懒惰,但即使使用Eclipse,也无法在GUI上使用TDD.如果有人碰巧知道一个类似于机器人的类,它接受字符串,然后模拟这些字符串的用户输入(我正在使用FEST),我很想知道.



1> pR0Ps..:
AWTKeyStroke.getAWTKeyStroke('c').getKeyCode();

稍微澄清了佩斯的回答.它应该是单引号(表示字符),而不是双引号(表示字符串).

使用双引号将抛出java.lang.IllegalArgumentException(String格式不正确).



2> 小智..:

也许这个丑陋的黑客:

Map keyTextToCode = new HashMap(256);
Field[] fields = KeyEvent.class.getDeclaredFields();
for (Field field : fields) {
    String name = field.getName();
    if (name.startsWith("VK_")) {
        keyTextToCode.put(name.substring("VK_".length()).toUpperCase(),
                          field.getInt(null));
    }
}

然后,keyTextToCode将包含从字符串(例如"A"或"PAGE_UP")到vk代码的映射.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有