У меня есть этап, который я заполнил содержанием.Теперь я хочу закрыть / скрыть эту сцену.Я читал, что close / hide были эквивалентны, поэтому я не знаю, что использовать.После закрытия этапа я открою новый класс и сделаю новый этап, если есть простой способ переслать старый этап в новый класс и переключить содержимое, я также мог бы использовать это решение.
Я думаю«primaryStage» скрыт в «start» и не может быть доступен из «handle», и именно поэтому вызывает проблему, но я не знаю решения.
public class Main extends Application implements EventHandler<ActionEvent> {
Button btn1, btn2;
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("title");
btn1 = new Button("new");
btn2 = new Button ("continue");
btn1.setOnAction(this);
btn2.setOnAction(this);
VBox vb = new VBox (btn1, btn2);
vb.setSpacing(10);
vb.setPadding(new Insets(20));
BorderPane root = new BorderPane();
root.setBottom(vb);
Scene scene = new Scene (root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
@Override
public void handle(ActionEvent event) {
if (event.getSource()==btn1) {
// primaryStage.hide();
NewClassWithStage newStage = new NewClassWithStage();
}else if (event.getSource()==btn2) {
// primaryStage.close();
NewClassWithStage newStage = new NewClassWithStage();
}
}
}