带有 JavaFX 的 Eclipse e4 - 如何获取应用程序和阶段 (javafx) 的实例?
Eclipse e4 with JavaFX - How to get instances of Application and Stage (javafx)?
我正在尝试将 GraniteDS 框架添加到 Javafx E4 应用程序。我已经将 GraniteDS Javafx 库 osgify 到包中,我可以在 JavaFX OSGi 应用程序中对其进行初始化(osgi 应用程序具有 jfxStart 方法和我需要的参数)。
但是在 Javafx E4 应用程序(使用 e(fx)clipse 向导创建)中没有 类 具有启动功能。
在 osgi 应用代码中是:
protected void jfxStart(IApplicationContext applicationContext, Application jfxApplication, Stage primaryStage) {
contextManager = new SimpleContextManager(new JavaFXApplication(jfxApplication, primaryStage));
contextManager.initModules(App.class);
Context context = contextManager.getContext();
context.set(this);
.......
}
问题是 - 如何在 Javafx E4 应用程序中获取 jfxApplication
和 primaryStage
实例以及在何处(何时)执行初始化(可能在 Activator 启动方法中?)
两者都可以通过 DI 获得:
class MyComponent {
@Inject
public MyComponent(Application app, @Named("primaryStage") Stage primaryStage) {
}
}
请注意,primaryStage 永远不会显示在 e4+JavaFX 应用程序中,因此您可能真正想要的是您所显示的阶段 - 所以很可能您真正想要的是
class MyComponent {
@Inject
public MyComponent(Application app, Stage primaryStage) {
}
}
我正在尝试将 GraniteDS 框架添加到 Javafx E4 应用程序。我已经将 GraniteDS Javafx 库 osgify 到包中,我可以在 JavaFX OSGi 应用程序中对其进行初始化(osgi 应用程序具有 jfxStart 方法和我需要的参数)。
但是在 Javafx E4 应用程序(使用 e(fx)clipse 向导创建)中没有 类 具有启动功能。
在 osgi 应用代码中是:
protected void jfxStart(IApplicationContext applicationContext, Application jfxApplication, Stage primaryStage) {
contextManager = new SimpleContextManager(new JavaFXApplication(jfxApplication, primaryStage));
contextManager.initModules(App.class);
Context context = contextManager.getContext();
context.set(this);
.......
}
问题是 - 如何在 Javafx E4 应用程序中获取 jfxApplication
和 primaryStage
实例以及在何处(何时)执行初始化(可能在 Activator 启动方法中?)
两者都可以通过 DI 获得:
class MyComponent {
@Inject
public MyComponent(Application app, @Named("primaryStage") Stage primaryStage) {
}
}
请注意,primaryStage 永远不会显示在 e4+JavaFX 应用程序中,因此您可能真正想要的是您所显示的阶段 - 所以很可能您真正想要的是
class MyComponent {
@Inject
public MyComponent(Application app, Stage primaryStage) {
}
}