java - 将 POJO 转换为 JavaFX 属性

标签 java properties javafx javafx-8 pojo

在我的项目中,我有许多 POJO,其字段显示在 JavaFX GUI 中。目前,我使用手动刷新来更新 UI - 每当 POJO 发生更改时,我都会调用 refresh() 方法。我想尝试使用绑定(bind)来完成此操作,这需要使用 JavaFX 属性。虽然我可以更改该对象,但其内部字段是其他我无法更改的对象(它们使用 GSON 填充,据我所知,它使用“普通”Java 对象 - 例如 String,而不是 StringProperty)。此外,该对象是只读的——它只有 getter,没有 setter。

我相信我可以使用 ReadOnlyJavaBeanObjectPropertyBuilder (是的 Java 命名?)或 ReadOnlyObjectWrapper 将对象包装为属性。但是,内部字段(我想要将标签绑定(bind)到的字段)不会转换为属性。有没有办法进行这样的递归转换——将包含普通对象字段的整个对象转换为包含更多属性的属性?这是否有必要——我做错了什么吗?

编辑:我怀疑任何解决方案都必须使用反射。

最佳答案

我不确定,但看看 BeanPathAdapter

它是 JFXtras-Labs 的一部分,可下载 jar .

来源是here在 GitHub 上。

关于java - 将 POJO 转换为 JavaFX 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23941075/

相关文章:

java - URI在线判断1435方阵I(呈现错误)

java - Java 中兼容类型的正式定义(健全性)

java - 如何在jre1.8上运行java11和jfx11应用程序

java - 转换 FXML 对话框的结果

java - 如何调用Method Invoke——反射

Java 程序结构建议

objective-c - 私有(private)@property 是否创建@private 实例变量?

javascript - 方法是javascript中属性的子集吗?

c# - 既然可以直接访问成员变量,为什么还要使用私有(private)属性 setter 呢?

css - 在未聚焦的 ListView 上禁用灰色选择