パッケージ内でのスタンドアロン アプリケーションの開始
背景:
複数のスタンドアロン アプリケーションがあります ( 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 中国語 Web サイトの他の関連記事を参照してください。