如何将KeyCode转换为KeyValue

时间:2015-06-26 03:43:40

标签: java javafx awt awtrobot

我正在使用JavaFX使用.setOnKeyReleased接收密钥输入。问题是,这给了我一个keyCode,但要使用robot class(尝试过的fx机器人,但它是“受限制的”),我需要一个keyValue int

无论如何我可以将KeyCode(Fx)KeyEvent转换为keyValue吗?请帮帮忙,想不出来。感谢

1 个答案:

答案 0 :(得分:0)

您可以尝试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密钥代码。