I have tried this nested controller stuff over and over again, It just doesn't work form 'me'. I don't know why i can get some thing as easy as this to. I follow this example
<VBox fx:controller="com.foo.MainController">
<fx:include fx:id="dialog" source="dialog.fxml"/>
...
</VBox>
public class MainController extends Controller {
@FXML private Window dialog;
@FXML private DialogController dialogController;
...
}
here is my code: app.Main.fxml
<AnchorPane prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="app.MainController">
<children>
<Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
<Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
<fx:include source="InnerFile.fxml" fx:id="innerfile"/>
</children>
</AnchorPane>
app.MainController.java
public class MainController {
@FXML
private Label label;
@FXML
private Button button;
@FXML
private InnerFileController controller;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!");
label.setText("Hello World!");
}
public void initialize() {
controller.here();
}
}
i'm calling a method of the nested controller ' controller.here(); ' and get nullpointerexecption. I don't know what have done wrong. Can some help me out please.