知道如何在Javafx中切换场景而不使用FXML并保持MVC行为吗?

知道如何在Javafx中切换场景而不使用FXML并保持MVC行为吗?,java,javafx,model-view-controller,Java,Javafx,Model View Controller,我的学校团队和我的任务是创建一个桌面应用程序。我们希望在不使用FXML的情况下编写代码,并且不确定如何切换场景。那么该阶段将如何被引用?提供的任何示例框架代码都非常好 目前,主GUI看起来像这样。我被告知,我实际上可以使用login/home控制器来显示其登录,而不是在主GUI中使用静态方法 public class Main extends Application { ..... public static void displayHome() { home.getSt

我的学校团队和我的任务是创建一个桌面应用程序。我们希望在不使用FXML的情况下编写代码,并且不确定如何切换场景。那么该阶段将如何被引用?提供的任何示例框架代码都非常好

目前,主GUI看起来像这样。我被告知,我实际上可以使用login/home控制器来显示其登录,而不是在主GUI中使用静态方法

public class Main extends Application {
.....
    public static void displayHome() {
        home.getStylesheets().add("css/MainCSS.css");
        window.setScene(home);

    }

    public static void displayLogin() {
        login.getStylesheets().add("css/MainCSS.css");
        window.setScene(login);
    }

   public static void main(String[] args) {
        launch(args);
    }
...
...
.....

}
在类内-->

通过使用setOnAction命令,可以使用任何场景的主播内的任何按钮转到下一个场景

类似下面的命令-

Button1.setOnAction(e -> primaryStage.setScene(Scene_2));
Button2.setOnAction(e -> primaryStage.setScene(Scene_1));

请..顺便说一句:静态范围是错误的,几乎总是“那么阶段将如何被引用?”。您可以使用
button.getScene()
获取包含任何节点(例如按钮)的场景,然后通过在场景上调用
getWindow()
来获取窗口。这是一个在没有FXML的情况下使用MVC的示例(与您的问题没有直接关系)。您可以创建一个“视图模型”,它使用JavaFX属性来维护当前可见的视图(也许是一个枚举),并且观察主视图中的属性,当它改变时切换场景。并且,代替切换场景,考虑使用单个场景并切换该场景的根。这将使您不必每次都设置样式表(还有其他好处,例如保留“全屏”状态)
Button1.setOnAction(e -> primaryStage.setScene(Scene_2));
Button2.setOnAction(e -> primaryStage.setScene(Scene_1));