是否可以在运行的 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/