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 :
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!