Beans绑定NetBeans中的JTable

我想将一个bean列表映射到JTable。 我们的想法是每个列都是bean中的一个预选字段,每一行都是List中的一个bean。 Slide#32在这里看起来非常有前景: http : //swinglabs.org/docs/presentations/2007/DesktopMatters/beans-binding-talk.pdf

但是,NetBeans不允许我将bean字段分配给列。 我可以右键单击JTable并单击Bind-> Elements并将其绑定到我的Bean列表。 但是,它不会让我指定每列中的内容。 唯一的选择是自己创建绑定,这使得NetBeans对这类事物毫无用处。

有没有我遗漏的细节? 似乎NetBeans中的JTable BeansBinding刚刚破解。

谢谢

我有它的工作。 你无法真正使用JTables的“Bind”菜单选项。 以下是如何使其工作:

  1. 右键单击JTable。
  2. 单击“表格内容”。
    1. 结合来源:表格
    2. 绑定表达式:$ {var}(其中var是bean列表的名称)。
  3. 单击“列”选项卡。
  4. 将列映射到表达式。 它应该看起来像$ {id}而不是$ {var.id}。

注意:映射到列的每个字段都必须具有getter。

尽管将IDE用于这种东西可能很有吸引力,但实际上只能自己编写代码。

就个人而言,我更喜欢Glazed Lists在桌子上展示豆类。 花2分钟观看video,我保证你会被迷住。 使用少于15行的代码,您将获得所需的内容,并对显示器进行大量控制 – 加上过滤,排序以及各种其他很酷的东西。

尝试使列表成为可观察的列表。 将其初始化更改为以下内容:

list1 = ObservableCollections.observableList(new ArrayList()); 

然后很多员工应该开始工作。 如果要绑定到bean,请确保在要绑定的属性的set方法中触发属性更改事件添加此代码

 private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(this); public void addPropertyChangeListener(PropertyChangeListener listener) { changeSupport.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { changeSupport.removePropertyChangeListener(listener); } 

修复导入,然后执行类似的操作

 public void setFirstName(String firstName) { String oldFirstName = this.firstName; this.firstName = firstName; changeSupport.firePropertyChange("firstName", oldFirstName, firstName); }