java - 如何获得 JavaFX 应用程序中的主要阶段?

标签 java javafx

是否可以在运行的 JavaFX 应用程序中获取对主要阶段的引用?

这个问题的背景是我想编写一个库来操作另一种语言(Prolog)的 JavaFX 接口(interface)。 为此,我的图书馆需要访问主要阶段。 目标是 JavaFX 应用程序的程序员不必在 start 方法中显式存储对 Stage 对象的引用,因此它对用户界面设计者应该是透明的(这是 a related question 以防需要更多详细信息) .

这个问题的一部分是获取对原始 JavaFX 应用程序的主要 Stage 对象的引用,所以我想知道是否可以使用某个地方的静态方法之类的东西来访问它。

最佳答案

不确定正确的决定,但它适用于我的情况。

在主类中使用 getter 和 setter 创建静态字段:

public class MyApp extends Application {

    private static Stage pStage;

    @Override
    public void start(Stage primaryStage) {
        setPrimaryStage(primaryStage);

        pStage = primaryStage;
        ...
    }

    public static Stage getPrimaryStage() {
        return pStage;
    }

    private void setPrimaryStage(Stage pStage) {
        MyApp.pStage = pStage;
    }
}

接下来,在必要的地方调用getter。例如:

stageSecond.initOwner(MyApp.getPrimaryStage());

关于java - 如何获得 JavaFX 应用程序中的主要阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805881/

相关文章:

java - 名称 ""对于 JDOM/XML 命名空间不合法

java - activemq 5.9.0 在 Windows 和 Maven 中失败

java - 两个设置背景和 sleep 线程

java - 在javafx的选择对话框中查找点击了哪个按钮

java - 如何使用文本字段相应地调整矩形的大小?

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

Java 卡转换

java - 调整大小时图像质量下降

javafx - 在JavaFX8中隐藏TextField的输入插入符

javafx - 我怎样才能解决这个问题? JavaFX - 错误的 JPEG 库版本 : library is 80, 调用者期望 70