调用需要 KeyEvent 参数的函数

Call a function that requires a KeyEvent parameter

我想在另一个函数中调用这个 java 函数。如何手动触发 KeyEvent?

    private void chooseItemByKey(KeyEvent event)

我试过了

        chooseItemByKey(new KeyEvent(null, null, null, null, null, KeyCode.DOWN, false, false, false, false));

触发 KeyCode "Down" 但我的 JRE 告诉我有一个

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: argument type mismatch

该方法需要 KeyEvent,因为我也通过一个键触发它,但我也需要从另一个函数触发该函数,而无需按下键盘上的键。 有什么想法吗?

只需重构它,以便它调用仅采用 KeyCode:

的不同方法
@FXML
private void chooseItemByKey(KeyEvent event) {
    chooseItemByKeyCode(event.getCode());
}

private void chooseItemByKeyCode(KeyCode code) {
    // essentially whatever you previously had in chooseItemByKey...
}

那么你只需要调用

chooseItemByKeyCode(KeyCode.DOWN);