8

javafx 属性是将数据模型连接到 javafx gui 的好方法,因为它们的绑定模型实现了强大的通知更新机制。

属性和绑定不是严格与 gui 相关的,而是对 javabean 的扩展。

因此,人们希望在应用程序模型类中使用它们而不引入对包的依赖,javafx.beans.property.StringProperty并且通常来自javafx.*.

换句话说:(更新)
我可能需要将应用程序分成两个模块。
一个模块应该只包含操作数据的类(模型类,MVC 语言)。
第二个模块将包含所有图形 gui 的东西,即 javafx。

如果我的数据类使用 javafx 绑定,我会引入一个导入javafx.beans.anything;(最好的情况是绑定是 java.* 或 javax.* 的一部分,所以我不会将“gui 库”引用到核心数据库中)。javafx 将包含在标准版本中的事实缓解了这个问题,但这似乎是一个棘手的解决方案。毕竟,我认为我斜视了一个依赖于一些摆动“实用程序”类的 Web 应用程序。

有没有可用的选项?

我正在评估使用侦听器创建常规 javabeans 属性并将它们桥接到 fx 属性所需的工作。

4

2 回答 2

1

将 JavaFX 对象绑定到 POJO(普通旧 Java 对象)技术可能会对您有所帮助。

请参阅下一组教程:http ://ugate.wordpress.com/2012/06/06/javafx-pojo-bindings/

简而言之,您可以使用下一种方式访问​​ POJO 对象:

    Person person = new Person();
    PathProperty prop = new PathProperty(
        person, "address.streetName", String.class);
    Bindings.bindBidirectional(prop, myTextField.textProperty());
    prop.set("123 1st Street");
于 2012-09-19T11:27:32.380 回答
1

正如谢尔盖所​​说:jfxtras 库是使用 BeanPathAdapter API 的解决方案: https ://github.com/JFXtras/jfxtras-labs/blob/2.2/src/main/java/jfxtras/labs/scene/control/BeanPathAdapter.java

如果您使用 Granite Data Services,还有另一种选择:它有一个类生成器,您可以自定义该生成器以生成 javafx 属性。它是一个漂亮的框架,专注于 javafx 应用程序的服务器端集成。 http://java.dzone.com/articles/data-management-javafx-and

于 2013-09-03T09:09:04.307 回答