如何解决使用 fxml 将模型绑定到自定义控件
我必须自定义控件,父控件和子控件。并且想要将模型的一部分分配给使用 fxml 的子级,这不是父级中可用的简单字符串。可能吗?
家长
public class ParentControl extends VBox {
public LocalDate getDate() {
return LocalDate.now();
}
public ParentControl() {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(
"/parent.fxml"));
fxmlLoader.setRoot(this);
fxmlLoader.setController(this);
....
自定义控件
public class CustomControl extends VBox {
@Getter
@Setter
LocalDate date;
父.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import com.example.javafx.CustomControl?>
<?import javafx.scene.layout.VBox?>
<fx:root type="javafx.scene.layout.VBox" xmlns:fx="http://javafx.com/fxml">
<CustomControl date="${date}"/>
</fx:root>
解决方法
kill
我猜你在那里使用 Lombok? Lombok 目前不支持 JavaFX(有一个开放的功能请求),一旦支持,我猜它会使用不同的注释。
对于属性绑定,您需要一个 JavaFX 属性:
@Getter
@Setter
LocalDate date;
您需要将 ParentControl 的日期属性更改为 ObservableValue。问题是 LocalDate.now 的预期行为是什么?您是否期望 CustomControl.date 将始终具有当前时间?还是初始化的时间?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。