小编Sir*_*nis的帖子

JavaFX 中 Controller 类中的 KeyEvent 分配位置

我正在尝试将键盘事件分配给特定场景上的特定按键。当单击前一个场景上的按钮时,将加载此场景。

我的问题是:我在哪里将此事件分配给按键?我已经尝试为所述场景的控制器类实现可初始化接口,但是当我尝试在initialize()方法中分配事件(如下面的代码所示)时,我得到一个空指针异常,因为场景显然是,无效的。

    @Override
public void initialize(URL arg0, ResourceBundle arg1) {
    this.pane.getScene().setOnKeyPressed(e -> {
        if(e.getCode()==KeyCode.E) {
            shoot();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试这样做,而不是

    @Override
public void initialize(URL arg0, ResourceBundle arg1) {
    this.pane.setOnKeyPressed(e -> {
        if(e.getCode()==KeyCode.E) {
            shoot();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

场景会加载,但按 E 键不会发生任何事情。

场景是用 SceneBuilder 构建的。

javafx keyevent

2
推荐指数
1
解决办法
1678
查看次数

标签 统计

javafx ×1

keyevent ×1