JavaFX 属性机制应该可以工作。它们是为支持 JavaFX GUI 而编写的,但对于非 gui 逻辑也应该可以正常工作——尽管我认为到目前为止还没有广泛用于该目的。我无法与其他竞争性框架讨论哪种框架可以更好地满足您的需求。
当您看到 JavaFX 中用于属性支持的类的数量时,这可能有点令人生畏,但它们往往可以很好地结合在一起,并且存在许多类来屏蔽对象/原始阻抗不匹配。遗憾的是,这些功能没有更好的语言支持。使用 IDE 和自动完成功能进行编程非常有效,因此您无需输入太多内容。侦听器折叠成 jdk8 lambda 表达式,因此它们最终可以非常简洁。
绑定和侦听器框架是允许 JavaFX 控件如此容易地适应和利用的一部分 - 它们为系统的每个项目提供更改通知的挂钩。
JavaDoc 可用。不幸的是,bindings 和 collections 上的官方文档在彻底描述如何使用它的功能集方面没有做到图书馆公正。有一篇关于使用JavaFX properties with POJOs 的有用文章。
JavaFX 的 bean、绑定和属性支持的源代码尚未公开(尽管计划在未来几个月内公开)。
使用高于 jdk7u6 的 Java 版本并确保分发中的 jfxrt.jar 文件位于您的类路径中,以便您选择 JavaFX 类。如果您不使用任何 GUI 组件,则无需在程序中扩展 JavaFX Application 类。
需要考虑的相关非 GUI 包是:
javafx.beans 包 javafx.beans 包含定义最通用的可观察性形式的接口。
javafx.beans.binding 绑定特征
javafx.beans.property 包 javafx.beans.property 定义了只读属性和可写属性,以及一些实现。
javafx.beans.property.adapter(使标准 pojo bean 适应 JavaFX 属性)。
javafx.beans.value 包 javafx.beans.value 包含两个基本接口 ObservableValue 和 WritableValue 及其所有子接口。
javafx.animation 提供一组易于使用的基于过渡的动画(与时间相关的非 GUI 部分)。
javafx.collections 包含基本的 JavaFX 集合和集合实用程序
javafx.util.converter 这个包是用于 JavaFX 的标准字符串转换器。