带有@NamedArgs 的JavaFX 自定义控件:无法绑定到未类型化的对象
JavaFX custom controls with @NamedArgs: Cannot bind to untyped object
我想使用带有两个自定义控件的 FXML 创建一个应用程序,其中一个需要引用另一个。
第一个 class 通过构造函数参数获取对第二个 class 的引用。这在带有 @NamedArgs
注释的 FXML 中也可用。
public SelectWeekControl(@NamedArg("dayControl") SelectDayControl selectDayControl) {
this.selectDayControl = selectDayControl;
...
}
现在我想通过引用 @NamedArgs
字段和另一个组件的 fx:id
来将两者添加到 FXML 文件中。
<SelectDayControl fx:id="daySelect"/>
<SelectWeekControl dayControl="${daySelect}" fx:id="weekSelect"/>
不幸的是,第二行失败并显示以下错误消息:
Caused by: javafx.fxml.LoadException: Cannot bind to untyped object.
唯一提到同一问题的 有一个不令人满意的答案。
我不知道为什么你试过的代码不起作用,但以下版本似乎可以正常工作:
<SelectWeekControl fx:id="selectWeekControl">
<selectDayControl>
<SelectDayControl fx:id="selectDayControl" />
</selectDayControl>
</SelectWeekControl>
并且(如果您需要在 FXML 文件中其他地方定义的 SelectDayControl
)
<SelectDayControl fx:id="selectDayControl" />
<SelectWeekControl fx:id="selectWeekControl">
<selectDayControl>
<fx:reference source="selectDayControl" />
</selectDayControl>
</SelectWeekControl>
我想使用带有两个自定义控件的 FXML 创建一个应用程序,其中一个需要引用另一个。
第一个 class 通过构造函数参数获取对第二个 class 的引用。这在带有 @NamedArgs
注释的 FXML 中也可用。
public SelectWeekControl(@NamedArg("dayControl") SelectDayControl selectDayControl) {
this.selectDayControl = selectDayControl;
...
}
现在我想通过引用 @NamedArgs
字段和另一个组件的 fx:id
来将两者添加到 FXML 文件中。
<SelectDayControl fx:id="daySelect"/>
<SelectWeekControl dayControl="${daySelect}" fx:id="weekSelect"/>
不幸的是,第二行失败并显示以下错误消息:
Caused by: javafx.fxml.LoadException: Cannot bind to untyped object.
唯一提到同一问题的
我不知道为什么你试过的代码不起作用,但以下版本似乎可以正常工作:
<SelectWeekControl fx:id="selectWeekControl">
<selectDayControl>
<SelectDayControl fx:id="selectDayControl" />
</selectDayControl>
</SelectWeekControl>
并且(如果您需要在 FXML 文件中其他地方定义的 SelectDayControl
)
<SelectDayControl fx:id="selectDayControl" />
<SelectWeekControl fx:id="selectWeekControl">
<selectDayControl>
<fx:reference source="selectDayControl" />
</selectDayControl>
</SelectWeekControl>