我有这样的代码:
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("main.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 800, 600));
primaryStage.show();
}
我怎样才能从一个完全独立的控制器类中将 main.fxml 替换为 server.fxml 并相应地显示它?
让我们这样说:
因此,在 OrderNewController 类中创建了 Stage 的设置器,然后在其中使用它。也可以通过某种实现 SharedPreference 的类进行传输。
例如,在控制器中,我们处理窗口的关闭:
那么,在 fxml 中,不要忘记显式定义控制器。
我更容易解决问题在主类中,我创建了一个单独的舞台并将其链接到主舞台
并在控制器中
这是最简单的选项之一。
UPD:一定要创建一个单独的控制器,不幸的是你不能将一个控制器用于多个 fxml。此外,如果您需要在替换场景时运行一些代码,请使用
initialize
.