ホームページ >Java >&#&チュートリアル >同じパッケージから複数のスタンドアロン JavaFX アプリケーションを起動するにはどうすればよいですか?

同じパッケージから複数のスタンドアロン JavaFX アプリケーションを起動するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-02 05:30:10529ブラウズ

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

パッケージ内でのスタンドアロン アプリケーションの開始

背景:

複数のスタンドアロン アプリケーションがあります ( myClass1、myClass2 など) を同じ Java パッケージ内に配置し、それぞれから独立して起動したい 他の。ただし、別のアプリケーションの launch() メソッドを呼び出すだけでは、アプリケーションの繰り返し起動が禁止されているため、エラーが発生します。

解決策:

直接メソッドを使用することは可能ですが、 Application サブクラスの新しいインスタンスで start(...) を呼び出すことは、いくつかの理由から推奨されません。

  • 従来の Java アプリケーションの main メソッドを置き換えるという start(...) メソッドの本来の目的に反しています。
  • 各 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。