Démarrage d'applications autonomes dans le même package en Java
Le démarrage d'applications autonomes à partir d'une application parent peut être une exigence courante dans divers scénarios. Cependant, cela pose un défi lorsque les applications autonomes font toutes partie du même package.
L'approche traditionnelle consistant à utiliser myClass2.launch("") pour lancer myClass2 à partir de myClass1 entraînera une erreur, car le lancement est destiné à être appelé une fois au début d'une application.
Pour surmonter ce problème, une approche plus appropriée consiste à refactoriser la conception en créant des classes distinctes pour chaque module, plutôt que d'étendre la classe Application. Ces classes peuvent être instanciées et gérées selon les besoins.
Refactoring de la conception de l'application
Créez des classes régulières, telles que FirstModule et SecondModule, pour encapsuler les fonctionnalités de chaque application autonome. .
public class FirstModule { private BorderPane view; public FirstModule() { // Create and configure the view } public Parent getView() { return view; } }
Instanciation et gestion Modules
Les modules peuvent être instanciés et gérés directement dans l'application principale.
FirstModule firstModule = new FirstModule(); Scene scene = new Scene(firstModule.getView()); Stage stage = new Stage(); stage.setScene(scene); stage.show();
Création d'applications autonomes
Pour les modules qui nécessitent pour s'exécuter en tant qu'applications autonomes, des sous-classes d'application distinctes peuvent être créé.
public class FirstApplication extends Application { @Override public void start(Stage primaryStage) { Scene scene = new Scene(new FirstModule().getView()); primaryStage.setScene(scene); primaryStage.show(); } }
Intégration de modules dans une application composite
Les modules peuvent également être intégrés dans une application composite plus grande.
public class CompositeModule { private HBox view; public CompositeModule() { // Create buttons to launch individual modules } public Parent getView() { return view; } } public class CompositeApplication extends Application { @Override public void start(Stage primaryStage) { Scene scene = new Scene(new CompositeModule().getView()); primaryStage.setScene(scene); primaryStage.show(); } }
Ceci Cette approche vous permet d'avoir plusieurs applications autonomes dans le même package et de les démarrer de manière transparente à partir d'autres modules ou applications.
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!