I'm trying to move a rectangle after setting the scene, however it doesnt seem to work.
I start with a scene to load a file that is used to create the next scene on button click.
@Override
public void start(Stage primaryStage) {
    Scene scene = CreateStartScene();
    primaryStage.setScene(scene);
    // Load Click Event
    loadButton.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent e) {
            FileChooser fileChooser = new FileChooser();
            fileChooser.setTitle("Select File");
            fileChooser.getExtensionFilters().addAll(new ExtensionFilter("Text Files", "*.txt"));
            File file = fileChooser.showOpenDialog(null);
            if (file != null) {
                fileTextField.setText(file.getAbsolutePath());
                startButton.setVisible(true);
            }
        }
    });
    // Start Click Event
    startButton.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent arg0) {
            if (!fileTextField.getText().isEmpty()) {
                // Read in maze file
                File file = new File(fileTextField.getText());
                ReadFile(file);
                Scene scene = CreateMainScene();
                primaryStage.setScene(scene);
                Solve();
            } else {
                errorLabel.setText("Please select a file");
            }
        }
    });
    primaryStage.show();
}
In the CreateMainScene method, shapes are added to the scene, one of which is this rectangle that is an instance variable
private Rectangle current;
which is added like this:
current = new Rectangle();
current.setFill(Color.CORNFLOWERBLUE);
current.setWidth(10);
current.setHeight(10);
current.setX(j * 10);
current.setY(i * 10);
pane.getChildren().add(current);
that all works fine, however in the solve method (which is recursive) I'm trying to change the position of that rectangle, and the pause for half a second.
    current.setX(x * 10);
    current.setY(y * 10);
    try {
        TimeUnit.MILLISECONDS.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
This does not work. The window freezes for a few seconds, before finally updating. I want to show the rectangle moving but I cant figure out how to do it.
 
    