Bonjour,
Voilà j'ai un champ dans un include d'un fxml et je voudrais y accéder dans le controller (du fxml englobant). J'ai donc ajouté un attribut dans le controller avec @FXML mais visiblement ça ne marche pas (le champ est toujours null dans l'initialize).
Voici le fxml englobant :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <GridPane fx:controller="test.ControllerA" xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10"> <TextField fx:id="myFieldA" GridPane.columnIndex="0" GridPane.rowIndex="0"/> <VBox GridPane.columnIndex="0" GridPane.rowIndex="1"> <children> <fx:include source="fieldB.fxml"/> </children> </VBox> </GridPane>
Le fxml inclu :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <GridPane fx:controller="test.ControllerB" xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10"> <TextField fx:id="myFieldB" GridPane.columnIndex="0" GridPane.rowIndex="0"/> </GridPane>
Le controller du premier fxml :
Donc comment faire pour pouvoir accéder aux champs inclus depuis le controller englobant ?
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 class ControllerA { @FXML private TextField myFieldA; @FXML private TextField myFieldB; @Override public void initialize(URL url, ResourceBundle rb) { myFieldA.setText("A"); myFieldB.setText("B"); // NullPointerException } }
Merci d'avance![]()
Partager