Javafx 2 Javafx嵌套控制器

Javafx 2 Javafx嵌套控制器,javafx-2,Javafx 2,我一次又一次地尝试这种嵌套控制器的东西,但它对我来说就是不起作用。 我不知道为什么我找不到像这样容易的工作。我遵循这个例子 <VBox fx:controller="com.foo.MainController"> <fx:include fx:id="dialog" source="dialog.fxml"/> ... </VBox> public class MainController extends Controller { @FXML

我一次又一次地尝试这种嵌套控制器的东西,但它对我来说就是不起作用。 我不知道为什么我找不到像这样容易的工作。我遵循这个例子

<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;

  ...
}
我正在调用嵌套控制器“controller.here();”的一个方法, 然后得到一个NullPointerExecption。
我不知道我做错了什么。

InnerFileController的变量名称不正确。你有:

@FXML私有内部文件控制器

但应该是:

@FXML专用InnerFileController InnerFileController


这是因为包含文件的控制器的变量名始终是添加了“controller”的fx:id值。

InnerFileController的变量名不正确。你有:

@FXML私有内部文件控制器

但应该是:

@FXML专用InnerFileController InnerFileController

这是因为包含文件的控制器变量的名称始终是添加了“controller”的fx:id值。

可能重复,也可能交叉过帐到可能重复,也可能交叉过帐到
<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>
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(); 
    }


}