我已经获得了第二个窗口的FXML文件,我从这里丢失了。按下按钮后如何让我的程序打开新窗口和FXML?
这就是我设置第一个窗口的方法
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
Scene scene = new Scene(root); primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.setTitle("Hello World!");
primaryStage.show();
}
所以我可以复制,但更改新窗口的值?然后我如何将其链接到我的按钮?我尝试了一些事件处理程序,但无济于事。
答案 0 :(得分:0)
如果您使用FXML,则按钮上有一个名为onAction的属性。您可以在场景构建器的“代码”部分中找到它,也可以直接在.fxml文件中找到它。 你只需输入一个方法的名称。
然后,您需要在场景的控制器类中创建此方法。如果您尚未为场景创建控制器,则只需在场景的根元素中设置属性“controller”,就像使用按钮的onAction一样。
在您创建的方法中,您只需键入代码即可打开新场景,如下所示:
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/org/yourcompanyname/yourapplicationname/layouts/nameOfYourFxmlFile.fxml"));
Parent root = fxmlLoader.load();
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stage.setOpacity(1);
stage.setTitle("My New Stage Title");
stage.setScene(new Scene(root, 450, 450));
stage.showAndWait();