Переключение между сценами в разных классах javafx
У меня есть приложение, которое я хочу иметь возможность переключаться между сценами, каждая из которых имеет свой код в JavaFX.
Например, моя стартовая сцена имеет следующий код:
public class Main extends Application
{
...
start(Stage window)
{
GridPane root = new GridPane();
root.setVgap(50);
window.setScene(new Scene(root, 1050, 800));
... //code specific to that class and scene
window.show();
}
}
Затем, когда я перемещаю сцены в мой домашний класс, я звоню
Home home = new Home();
внутри моего основного класса. Вот мой домашний код:
public class Home
{
public Home(Stage window)
{
GridPane root = new GridPane();
root.setVgap(50);
window.setScene(new Scene(root, 1050, 800));
... //code that adds nodes to root that is specific to class
//button to switch scenes
Button button = new Button("Start lesson");
button.setOnAction((ae) -> Lesson lesson = new Lesson());
window.show();
}
}
Который вызывает этот класс урока при нажатии кнопки, чтобы начать урок:
public class Lesson
{
private int index;
public Lesson(Stage window)
{
FlowPane root = new FlowPane();
root.setHgap(50);
root.setVgap(50);
root.setAlignment(Pos.CENTER);
window.setScene(new Scene(root, 1050, 800));
index = 0;
...//code that adds nodes to root that is specific to class
window.show()
}
public void moveForward()
{
index++;
if(index > *condition*)
{
Home home = new Home();
}
else
{
FlowPane root = new FlowPane();
root.setHgap(50);
root.setVgap(50);
root.setAlignment(Pos.CENTER);
window.setScene(new Scene(root, 1050, 800));
...//code that adds nodes to scene including button2
button2.setOnAction((ae) -> moveForward());
window.show();
}
}
После того, как метод moveForward() был вызван несколько раз, и он пытается вернуться к сцене Home(), я получаю исключение, так как после завершения конструктора он пытается завершить рекурсивный метод moveForward(). Как правильно переключаться между слайдами или как это исправить. Спасибо за любую помощь заранее.