erreur sur l'utilisation de loader.getController
Bonjour
(oui encore moi) je suis allé voir des exemples et tuto pour load.getControler() mais je crois pas avoir bien saisie le truc en fait j'ai 2 fenêtre et chacun son controlleur mais dans le controlleur de la 2ème fenêtre j'ai besoin d'une méthode qui est dans le controlleur de la première et je n'arrive pas à y avoir accès
voici le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @FXML public void charge() {
FXMLLoader loader=new FXMLLoader(Main.class.getResource("PremiereFenetre.fxml"));
ControlBoutons c=loader.<ControlBoutons>getController(); //c == controleur de la première fenêtre
System.out.println(c);
list.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
String select=list.getSelectionModel().getSelectedItem(); //selection model
LectureObjet lec=new LectureObjet(select); //lecture
ArrayList<Face> faces=lec.getFaces();
try {
c.updateCanvas(faces); //dessine la figure
} catch (Exception e) {
e.printStackTrace();
}
Stage stage=(Stage)list.getScene().getWindow();
stage.close();
} |
En fait ce que je veux faire c'est choisir un fichier et fermer la fenêtre (c'est un fichier qui décrit une image, un .ply que je veux dessiner dans le canvas qui est dans ma première fenêtre) donc je veux envoyer ce fichier sélectionné pour le dessiner mais la fonction qui permet de dessiner est dans le controlleur de la première fenêtre (j'ai besoin de cette méthode dans les 2 controlleurs en gros) et j'ai vu qu'avec load.getControler() on pouvait avoir accès aux méthodes des controlleurs donc je demande de l'aide svp car j'ai un NullPointerException sur la ligne
Code:
c.updateCanvas(faces)
et j'ai fais un syso(c) ça me dit que c'est null alors qu'il devrai y avoir le controlleur de la première fenêtre.
Meri d'avance pour l'aide.