【发布时间】:2015-09-12 21:31:51
【问题描述】:
我正在使用JavaFX 接收使用.setOnKeyReleased 的密钥输入。问题是这给了我一个keyCode,但要使用robot class(试过fx机器人,但它是“受限的”)我需要一个keyValue int。
无论如何我可以将KeyCode 或(Fx)KeyEvent 转换为keyValue?请帮助,无法弄清楚这一点。谢谢
【问题讨论】:
我正在使用JavaFX 接收使用.setOnKeyReleased 的密钥输入。问题是这给了我一个keyCode,但要使用robot class(试过fx机器人,但它是“受限的”)我需要一个keyValue int。
无论如何我可以将KeyCode 或(Fx)KeyEvent 转换为keyValue?请帮助,无法弄清楚这一点。谢谢
【问题讨论】:
你可以试试 KeyCode 的impl_getCode()。但请注意,这是内部的,很可能会随着 Java 9 的变化而改变。来自 KeyCode 类:
/**
* @treatAsPrivate implementation detail
* @deprecated This is an internal API that is not intended for use and will be removed in the next version
*/
// SB-dependency: RT-22749 has been filed to track this
@Deprecated
public int impl_getCode() {
return code;
}
为什么这种方法不合适,是个谜。
使用它 e. G。像这样:
scene.addEventFilter(KeyEvent.KEY_RELEASED, e -> {
System.out.println(e.getCode().impl_getCode());
});
如果 Java 实现更改导致一切失败,您始终可以使用 Java 源创建自己的 JavaFX 键码到 awt 键码的映射。
【讨论】: