首页 > Java > java教程 > 如何从同一个包启动多个独立的 JavaFX 应用程序?

如何从同一个包启动多个独立的 JavaFX 应用程序?

DDD
发布: 2024-12-02 05:30:10
原创
563 人浏览过

How Can I Launch Multiple Standalone JavaFX Applications from the Same Package?

在包中启动独立应用程序

背景:

您有多个独立应用程序( myClass1、myClass2 等)位于同一个 Java 包中,并希望彼此独立地启动它们。然而,简单地调用另一个应用程序的 launch() 方法会导致错误,因为重复的应用程序启动被禁止。

解决方案:

虽然可以直接使用在 Application 子类的新实例上调用 start(...) ,由于以下几个原因,不鼓励这样做:

  • 它违背了start(...) 方法的预期目的是取代传统 Java 应用程序中的 main 方法。
  • 每个 Application 子类代表一个整个正在运行的应用程序,使得多个实例本质上不可重用。

重新构建您的设计:

要解决此问题,请考虑重构您的设计,以便应用程序模块不是应用程序子类,而是常规类。这允许您为每个模块创建单独的独立应用程序,或将它们实例化为更大应用程序的一部分。

独立应用程序示例:

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板