在数据模型中使用javafx属性和绑定

时间:2012-09-14 08:26:32

标签: java javabeans javafx-2

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

属性和绑定与gui无关,而是javabeans的扩展。

因此,人们希望在应用程序模型类中使用它们,而不会对包javafx.beans.property.StringProperty以及javafx.*引入依赖关系。

换句话说:(更新)
我可能需要将应用程序拆分为两个模块。
一个模块应该只包含操作数据的类(Model类,MVC)。
第二个模块将包含所有图形gui的东西,即javafx
如果我的数据类使用javafx绑定,我会引入一个导入javafx.beans.anything;(最好的是绑定是java。*或javax。*的一部分,所以我不会引用“gui库”到核心数据库)。 javafx将被纳入标准版本的事实缓解了这种增长,但这似乎是一个棘手的解决方案。毕竟我认为我斜视一个依赖于一些“实用”类的Web应用程序。

有没有可用的选择?

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

2 个答案:

答案 0 :(得分:1)

将JavaFX对象绑定到POJO(Plain Old Java Object)技术可能会对您有所帮助。

请参阅下一组教程: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");

答案 1 :(得分: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