在包中启动独立应用程序
背景:
您有多个独立应用程序( myClass1、myClass2 等)位于同一个 Java 包中,并希望彼此独立地启动它们。然而,简单地调用另一个应用程序的 launch() 方法会导致错误,因为重复的应用程序启动被禁止。
解决方案:
虽然可以直接使用在 Application 子类的新实例上调用 start(...) ,由于以下几个原因,不鼓励这样做:
重新构建您的设计:
要解决此问题,请考虑重构您的设计,以便应用程序模块不是应用程序子类,而是常规类。这允许您为每个模块创建单独的独立应用程序,或将它们实例化为更大应用程序的一部分。
独立应用程序示例:
public class FirstApplication extends Application { @Override public void start(Stage primaryStage) { Scene scene = new Scene(new FirstModule().getView()); primaryStage.setScene(scene); primaryStage.show(); } }
复合模块示例:
public class CompositeModule { // ... public void showFirstModule() { Scene scene = new Scene(new FirstModule().getView()); Stage stage = new Stage(); stage.initOwner(this.getClass()); // Must use a JavaFX class, not an Application class stage.setScene(scene); stage.show(); } // ... }
通过遵循此方法,您可以创建并启动同一包中的多个独立应用程序,同时遵守 JavaFX 最佳实践。
以上是如何从同一个包启动多个独立的 JavaFX 应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!