【发布时间】:2012-09-14 15:23:12
【问题描述】:
在this tutotial 中,是一个如何包含自定义组件并从容器的控制器中使用它们的控制器的示例。
main_window_content.fxml
<VBox fx:controller="com.foo.MainController">
<fx:include fx:id="dialog" source="dialog.fxml"/>
...
</VBox>
MainController.java
public class MainController extends Controller {
@FXML private Window dialog;
@FXML private DialogController dialogController;
..
如果该组件只包含一次,它可以正常工作。 如果相同的组件被包含两次,控制器不会被初始化。 两个控制器都是空的。
main_window_content.fxml
<VBox fx:controller="com.foo.MainController">
<fx:include fx:id="dialog1" source="dialog.fxml"/>
<fx:include fx:id="dialog2" source="dialog.fxml"/>
...
</VBox>
MainController.java
public class MainController extends Controller {
@FXML private Window dialog1;
@FXML private DialogController dialogController1;
@FXML private Window dialog2;
@FXML private DialogController dialogController2;
有人可以帮我解决这个问题吗? 谢谢
这是我的 FXML 加载代码。它在主应用程序方法中执行:
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("main_window_content.fxml"));
stage.setTitle("FXML Welcome");
stage.setScene(new Scene(root, 300, 275));
stage.show();
}
【问题讨论】:
-
第二个答案是这个问题的正确答案,应该标记为“已接受”
-
@AmirArad “第二个”是哪一个?
标签: controller include nested javafx fxml