如何在JavaFX中修改和重绘GridPane

时间:2018-11-12 07:32:26

标签: javafx gridpane

我正在尝试为一类创建标准的鼠标迷宫求解器,而图形部分遇到了麻烦。解决迷宫很容易,但是事实证明,随着鼠标的移动,以图形方式更新鼠标非常困难。下面是我所拥有的精简版。

@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中,很难访问窗口中的元素,这告诉我我做错了。请帮忙。

0 个答案:

没有答案