java - 我不知道如何在java fxml中关闭主窗口

标签 java fxml scenebuilder

我不知道如何在java fxml中关闭主窗口。

这部分代码位于Main类中:

public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
    Parent root2 = FXMLLoader.load(getClass().getResource("2ndwin.fxml"));
    Scene scene  = new Scene(root);
    primaryStage.setTitle("Hello World");
    primaryStage.setScene(scene);
    primaryStage.show();

    Scene scene2 = new Scene(root2);
    secondaryStage.setScene(scene2);
}

public void show(){
    secondaryStage.show();
}

我有这个。在 Controller 中我这样做了:

Main m = new Main();
m.show();`

但我仍然不知道如何关闭primaryStage

请帮助我或告诉我如何创建新窗口并关闭旧窗口。我认为这就是我想做的 - 它不正确,但我自己想出了它。

最佳答案

我通过使用您想要关闭的舞台中的对象来获取窗口

    Window currentStage = OBJECTINSCENE.getScene().getWindow();

(将“OBJECTINSCENE”替换为场景中任何内容的 ID)。这为您提供了已打开阶段的引用。然后调用

currentStage.hide();

在需要时关闭舞台。

所以你的显示函数如下

public void show(){
    Window currentStage = OBJECTINSCENE.getScene().getWindow();
    secondaryStage.show();
    currentStage.hide();
}

关于java - 我不知道如何在java fxml中关闭主窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60799669/

相关文章:

java - 程序中出现空指针异常

java - 从另一个类(JavaFX 的 Controller 类)获取变量

JavaFX - 如何从 TextField 打印文本

java - 我可以假设具有相同 System.identityHashCode 的两个对象是相同的吗?

java - 将包含main方法的类放入子包中

java - 使用 JavaFX 缩放窗口时自动将程序内容居中

java - 将按钮方法绑定(bind)到 ENTER 键

java - 返回组合框 javafx 的选择

java - 在函数 fromJson 之前将一些属性注入(inject)到类中

java - FXML 中一次又一次出现 IOEXCEPTION 错误。尝试将 FXML 文件放在 ListView 中的列表元素上