调用需要KeyEvent参数的函数

时间:2015-10-21 15:30:19

标签: java javafx keydown keyevent keycode

我想在另一个函数中调用这个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,因为我也是通过一个键来触发它,但是我需要从另一个函数触发该函数,而不是按键盘上的键。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

只需重构它就可以调用另一种方法,只需要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);