我正在尝试使用NetBeans将JTextField绑定到JTable的选定元素。
JTable从AbstractTableModel子类获取其数据,该子类返回Cow对象。目前,每个Cow对象都通过其toString方法显示为String。
我正在尝试将JTextField的 text 属性绑定到在JTable中选择的Cow对象的 name 属性。
我将NetBeans中JTextField的text属性绑定到:
flowTable[${selectedElement.name}]
这会生成以下生成代码行:
org.jdesktop.beansbinding.Binding binding =
org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
cowTable,
org.jdesktop.beansbinding.ELProperty.create("${selectedElement.name}"),
cowNameTextField,
org.jdesktop.beansbinding.BeanProperty.create("text"));
文本字段的绑定值始终为null。
我做错了什么?
答案 0 :(得分:0)
您的Cow
班级是否有public String getName()
方法返回名称?
如果没有,那么你会得到预期的结果。如果是,你可以发布更多的代码(你的数据类,tablemodel,表...)。
答案 1 :(得分:0)
如果您只对表中的String感兴趣,而不是Cow对象本身:
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if(!e.getValueIsAdjusting()) {
Object value = table.getValueAt(e.getFirstIndex(), COLUMN_X);
jTextField.setText(value.toString());
}
}
);
答案 2 :(得分:0)
您的Cow类是否支持添加PropertyChangeListener
?我没有经常使用NetBeans的bean绑定支持,但我记得你需要它。无论如何,更多的代码可以帮助找出问题出在哪里。