不确定在哪里应用 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()
来完成此操作。
我是 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()
来完成此操作。