您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JavaFX绑定非属性成员来控制

JavaFX绑定非属性成员来控制

在这里有几个选择。

首先,可以在JPA / Hibernate实体中使用FX属性,尽管您必须谨慎一些。简而言之,您需要确保使用属性访问,以便ORM调用get / set方法,而不是尝试直接设置字段。史蒂文?范?恩佩(Steven van Impe)在他的博客上对此进行了讨论,我也在同一个主题上发表了博客。我在这里没有尝试过的一件事是映射集合并使用ObservableLists:这可能很棘手,因为JPA实现使用的子接口List

您的另一个选择是使属性成为Java Bean的“绑定属性”,然后使用Java Bean属性适配器

import java.beans.PropertyChangeSupport ;

public class Person()
{
    private int id;
    private String name;

    private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);

    public void addPropertychangelistener(Propertychangelistener listener) {
        this.pcs.addPropertychangelistener(listener);
    }

    public void removePropertychangelistener(Propertychangelistener listener) {
        this.pcs.removePropertychangelistener(listener);
    }

    public int getId()
    {
       return this.id;
    }

    public void setId(int id) 
    {
       int oldId = this.id ;
       this.id = id ;
       pcs.firePropertyChange("id", oldId, id);
    }

    public String getName()
    {
       return this.name;
    }

    public void setName(String name) 
    {
        String oldName = this.name ;
        this.name = name ;
        pcs.firePropertyChange("name", oldName, name);
    }
}

那你可以做

Label nameLabel = new Label();
Person person = new Person();
nameLabel.textproperty().bind(JavaBeanStringPropertyBuilder.create()
    .bean(person)
    .name("name") // name of property to bind to
    .build());
java 2022/1/1 18:37:49 有374人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶