不确定在哪里应用 KeyListener

Unsure where to apply KeyListener

我是 JavaFX 的新手,我已经做了相当多的研究,但我还没有找到将我的侦听器添加到的确切位置。

我创建了一个 GridPane 10x10,其中网格的每个插槽都是一个包含图像的 ImageView。这些图像代表我的棋盘元素,如墙壁、盒子、演员等。当用户使用箭头键时,演员应该在棋盘上移动(我有很多控制方法来确保移动有效)。

我当前的运动代码是:

grid.setOnKeyPressed((KeyEvent event) -> {
       if(event.getCode().equals(KeyCode.LEFT)){
           if (dc.afhandelingKeyEvents("Links")){
               grid.getChildren().remove(arrayViews[ventjeX][ventjeY]);
               ImageView imv = new ImageView();
               imv.setImage(mannetje);
               grid.add(imv, ventjeX -1, ventjeY);
           }

右侧、顶部和底部类似。问题是,它什么也没做。 我不确定我在这里做错了什么。 提前致谢。

.setOnKeyPressed() on a node 将在选择该节点时触发。您真正想要的是捕获任何按键。您可以通过在 Scene 对象上调用 .setOnKeyPressed() 来完成此操作。