Maison >Java >javaDidacticiel >Comment puis-je lancer plusieurs applications JavaFX autonomes à partir du même package ?

Comment puis-je lancer plusieurs applications JavaFX autonomes à partir du même package ?

DDD
DDDoriginal
2024-12-02 05:30:10527parcourir

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

Démarrage d'applications autonomes dans un package

Contexte :

Vous disposez de plusieurs applications autonomes ( myClass1, myClass2, etc.) au sein d'un même package Java et souhaitez les lancer indépendamment les uns des autres. Cependant, le simple appel de la méthode launch() d'une autre application entraîne une erreur car les lancements répétés d'applications sont interdits.

Solution :

Bien qu'il soit possible d'utiliser un direct appel à start(...) sur une nouvelle instance d'une sous-classe Application, il est déconseillé pour plusieurs raisons :

  • Cela va à l'encontre du but recherché du start(...), qui consiste à remplacer la méthode main dans les applications Java traditionnelles.
  • Chaque sous-classe Application représente une application entière en cours d'exécution, ce qui rend plusieurs instances intrinsèquement non réutilisables.

Réarchitecture de votre conception :

Pour résoudre ce problème, envisagez de restructurer votre conception afin que les modules d'application ne soient pas des sous-classes d'application mais cours réguliers. Cela vous permet de créer des applications autonomes distinctes pour chaque module ou de les instancier dans le cadre d'une application plus vaste.

Exemple d'application autonome :

public class FirstApplication extends Application {

    @Override
    public void start(Stage primaryStage) {
        Scene scene = new Scene(new FirstModule().getView());
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Composite Exemple de module :

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();
    }

    // ...
}

En suivant cette approche, vous pouvez créer et lancer plusieurs applications autonomes au sein de la même package, tout en adhérant aux meilleures pratiques JavaFX.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn