Bonjour,
Comment puis je faire pour changer de scene ou lancer un nouvel ecran
Voici le contrôleur où est instanciée l'arbre:
Le controleur est appelé par le main MainApp.java où sont chargées les fichiers FXML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public void initialize(URL location, ResourceBundle resources) { loadItems(); } @SuppressWarnings("unchecked") public void loadItems() { TreeItem<String>root=new TreeItem<>("Root"); TreeItem<String> clients=new TreeItem<>("Clients"); TreeItem<String> addClient=new TreeItem<>("Add Client"); TreeItem<String> seeClient=new TreeItem<>("See clients"); TreeItem<String> articles=new TreeItem<>("Articles"); TreeItem<String> devis=new TreeItem<>("Devis"); root.getChildren().addAll(clients,articles,devis); clients.getChildren().addAll(addClient,seeClient); root.setExpanded(true); treeview.setRoot(root); treeview.setShowRoot(false); }
Comment faire pour changer de FXML en cliquant sur un noeud de l'arbre ? Par exemple si je clique sur "Add Client" de l'arbre , je souhaiterai qu'un nouveau fichier FXML "AddClient.fxml" soit chargé au niveau de MainApp.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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 @Override public void start(Stage primaryStage) { this.primaryStage=primaryStage; mainMenuView(); } public void mainMenuView() { try { FXMLLoader loader=new FXMLLoader(); loader.setLocation(MainApp.class.getResource("view/menuView.fxml")); AnchorPane menuView=(AnchorPane)loader.load(); rootView.setCenter(menuView); MenuViewController controller = loader.getController(); controller.setMainApp(this); TreeLoadingEventHandler Tree=new TreeLoadingEventHandler(controller); Tree.handle(null); } catch(Exception e) { e.printStackTrace(); } } private class TreeLoadingEventHandler implements EventHandler<ActionEvent> { private MenuViewController controller; TreeLoadingEventHandler(MenuViewController controller) { this.controller = controller; } @Override public void handle(ActionEvent t) { controller.loadItems(); } }
Merci d'avance de votre aide
Partager