作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将 "VK_UP"
(或简单的 "UP"
)之类的文本更改/解析为 Java 中的 KeyEvent.VK_UP
常量.我不想使用数字 38
,因为它将保存在 .txt
配置文件中,因此任何人都可以重写它。
最好的解决方案是拥有这个 HashMap :
HashMap<String, Integer> keyConstant;
其中键是名称 ("VK_UP"
),值是键码 (38
)。
现在的问题是:我怎样才能得到这张 map 而不用花一整晚的时间手动创建它?
最佳答案
你可以使用反射。
下面几行应该可以工作,没有异常处理:
public static int parseKeycode(String keycode) {
// We assume keycode is in the format VK_{KEY}
Class keys = KeyEvent.class; // This is where all the keys are stored.
Field key = keys.getDeclaredField(keycode); // Get the field by name.
int keycode = key.get(null); // The VK_{KEY} fields are static, so we pass 'null' as the reflection accessor's instance.
return keycode;
}
或者,您可以使用简单的单行代码:
KeyEvent.class.getDeclaredField(keycode).get(null);
关于Java:将 "VK_UP"更改为 KeyEvent.VK_UP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17372011/
我需要将 "VK_UP"(或简单的 "UP")之类的文本更改/解析为 Java 中的 KeyEvent.VK_UP 常量.我不想使用数字 38,因为它将保存在 .txt 配置文件中,因此任何人都可以重
我想在 C 语言中使用箭头键和命令 GetAsyncKeyState(VK_UP) (和 VK_LEFT ,...)。 但我不知道如何在这些情况下使用 switch 命令 **VK_UP、VK_LEF
我想使用 VK_UP 或 VK_DOWN 移动焦点,以便它可以转到上一个或下一个文本字段。 我该怎么做? 我尝试过使用这个,但没有成功。 private void passwordTFKeyType
好吧,我正在尝试对游戏进行简单的修改,这是模拟按键的代码: #define PWNFUNC(a) static cell AMX_NATIVE_CALL a(AMX *amx, cell *param
我是一名优秀的程序员,十分优秀!