我想将一个bean列表映射到JTable。我们的想法是每个列都是bean中的一个预选字段,每一行都是List中的一个bean。这里的幻灯片#32看起来非常有前景:http://swinglabs.org/docs/presentations/2007/DesktopMatters/beans-binding-talk.pdf
但是,NetBeans在让我为列分配bean字段方面不是很友好。我可以右键单击JTable并单击Bind-> Elements并将其绑定到我的Bean列表。但是,它不会让我指定每列中的内容。唯一的选择是自己创建绑定,这几乎使NetBeans对这类事物毫无用处。
我有遗失的细节吗?似乎NetBeans中的JTable BeansBinding刚刚破解。
由于
答案 0 :(得分:6)
我有它的工作。您无法真正使用JTables的“绑定”菜单选项。以下是如何使其发挥作用:
注意:映射到列的每个字段都必须有一个getter。
答案 1 :(得分:4)
尽管将IDE用于此类内容可能很有吸引力,但实际上无法替代自己编写代码。
就个人而言,我更喜欢Glazed Lists来表示表中的bean。花2分钟观看视频,我保证你会被迷住。使用少于15行的代码,您将获得所需的内容,并对显示器进行大量控制 - 加上过滤,排序以及各种其他很酷的东西。
答案 2 :(得分:0)
尝试将列表设为可观察列表。将其初始化更改为以下内容:
list1 = ObservableCollections.observableList(new ArrayList<Person>());
然后很多员工应该开始工作了。如果您绑定到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);
}