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 :
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
    }
}
Donc comment faire pour pouvoir accéder aux champs inclus depuis le controller englobant ?

Merci d'avance