我正在尝试为一类创建标准的鼠标迷宫求解器,而图形部分遇到了麻烦。解决迷宫很容易,但是事实证明,随着鼠标的移动,以图形方式更新鼠标非常困难。下面是我所拥有的精简版。
@Override
public void start(Stage primaryStage) throws IOException {
Maze maze = new Maze();
maze.loadMazeFromFile("maze_input.txt");
GridPane mazeGrid = maze.drawGrid();
mazeGrid.setAlignment(Pos.CENTER);
StackPane root = new StackPane();
root.getChildren().add(mazeGrid);
Scene scene = new Scene(root, (maze.rows()*10)+40, (maze.columns()*10)+130);
primaryStage.setTitle("Mad Mouse Maze");
primaryStage.setScene(scene);
primaryStage.show();
maze.solveMaze();
}
将打开一个简单的窗口,其中显示了我的迷宫,并且鼠标可以解决控制台输出中所示的迷宫,一切正常。每当鼠标在mazeGrid = maze.drawGrid();
内移动并重绘表示迷宫的GridPane时,我需要做且无法弄清楚的方法是重复maze.solveMaze();
。如何从迷宫对象中访问mazeGrid?我是否为网格创建某种类型的事件以监视并激发它,如果可以的话?在JavaFX中,很难访问窗口中的元素,这告诉我我做错了。请帮忙。