Bonjour,
Je commence à apprendre à me servir de SceneBuilder, mais je ne sais pas trop quelles sont les bonnes pratiques.
J'ai créé une application qui ouvre une fenêtre principale appelée "MainWindow". Elle est construite comme il se doit avec un fichier MainWindow.fxml, et les actions sur les menus et les contrôles sont dans un fichier "MainWindowController.java".
J'ouvre une nouvelle fenêtre avec une commande de menu, cette fenêtre me servira à enregistrer des éléments (liste de produits, de clients...). La commande de cet item s'appelle AjouterTrucs() et voici son code :
J'ai donc créé une nouvelle fenêtre avec un nouveau fichier AjouterTrucs.fxml, avec un nouveau contrôleur AjouterTrucsController.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public void menu_Fichier_AjouterTrucs() { try { AnchorPane root = (AnchorPane) FXMLLoader.load(getClass().getResource("AjouterTrucs.fxml")); Stage Ajouter = new Stage(); Scene scene = new Scene(root, 640, 480); Ajouter.setScene(scene); Ajouter.show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Sauf que maintenant, je voudrais faire un bouton pour fermer la fenêtre. Or, si je comprends bien, ce que je construis avec SceneBuilder, et qui est décrit par mon fichier AjouterTrucs.fxml, c'est mon AnchorPane. Et si je veux fermer la fenêtre, je dois bien récupérer l'objet Stage pour faire : stage.close();
Comment dois-je faire ? Faire un seul contrôleur pour toutes les fenêtres de mon application ? Sinon, comment récupérer mon objet Stage dont dépend mon contrôleur AjouterTrucsController ?
Merci de vos éclaircissements.
Partager