Bonsoir a tous et toutes,

j'ai fureté a droite et a gauche pr résoudre mes problèmes et j'ai trouvé ms je souhaiterai qques explications sur ce que j'ai trouvé fait vraiment. C'est un peu (bcp) obscur pr moi.

Le contexte,
Le code,
Les questions

Contexte,
J'ai 1 Main (Main.java) qui ouvre la fenetre principale de l'application
J'ai 1 .fxml et son Controller (pr la fenetre principale)
j'ai 1 second .fxml et son Controller pr 1 seconde fenetre.

Grace au Controller du 1° .fxml, j'ouvre 1 seconde fenetre.
Voici la méthode ds le Controller associée au bouton déclaré ds le .fxml correspondant
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
 
    @FXML
    private void ouvrirSectionLivres(ActionEvent event) throws IOException {
 
    	//
    	Stage stage02;
    	Scene scene02;
    	AnchorPane scene02Layout;
 
    	try {
 
	    	stage02 = new Stage();
 
	    	FXMLLoader loader = new FXMLLoader();
 
	    	loader.setLocation(Main.class.getResource("views/FXML_scene02Layout.fxml"));i
 
	    	scene02Layout = loader.load();
 
	    	scene02 = new Scene(scene02Layout);
 
	    	stage02.setScene(scene02);
 
	    	// permet de rendre la stage02 modal et de garder le focus
	    	// stage01 n'est pas utilisable tant que stage02 est là
	    	stage02.initModality(Modality.WINDOW_MODAL);
	    	stage02.initOwner(((Node) event.getSource()).getScene().getWindow());
 
	    	stage02.setTitle("Section Livres: affichage de la base de données.");
 
	    	stage02.show();
 
 
    	} catch (IOException err) {
 
    		//
    		err.printStackTrace();
    	}
    }
Ds mon 2° .fxml (pr la seconde fenetre), je crée 1 bouton pr fermer cette seconde fenetre.
Voici la méthode implémentée ds le Controller associé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
	@FXML
    private void quitterSectionLivres(ActionEvent event) {
 
		// System.out.println("quitter");
 
		Stage stage02 = (Stage) scene02_AP01_P03_btnQuitter.getScene().getWindow();
 
	    stage02.close();
 
 
    }
2 petites quest°:
La première au niveau de la concept°.
Je ne trouve pas super... "pro" d'avoir la methode qui ouvre la fenetre ds le 1° Controller et la methode
qui ferme cette même fenetre ds le 2° Controller.
Comment faîtes vs pr réunir les 2 méthodes ds le meme fichier?

La seconde question est la L de la seconde méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Stage stage02 = (Stage) scene02_AP01_P03_btnQuitter.getScene().getWindow();
Je ne comprends pas vraiment,
Cette L de code recrée t-elle 1 instance de Stage. En plus c'est ce qu'on appelle 1 cast il me semble?
je change 1 instance Button en instance Stage?
C'est bien ça?

Merci de vos éclaircissements.
Passez 1 bonne soirée.
grub