我已经设置了一个带有绑定到 bean 属性的文本字段的 Netbeans 表单。绑定应该是双向的,但只能单向工作。更新 GUI 中的字段会更新 bean,但如果更新了 bean,则 GUI 不会更新。
Netbeans 为每个属性生成的代码如下所示:
binding=org.jdesktop.beansbinding.Bindings.createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, crmmast1,
org.jdesktop.beansbinding.ELProperty.create("${fname}"), lname,
org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
我的 bean 添加了属性更改支持:
private PropertyChangeSupport changeSupport = new
PropertyChangeSupport(this);;
public void addPropertyChangeListener (PropertyChangeListener listener) {
changeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(
PropertyChangeListener listener) {
changeSupport.removePropertyChangeListener(listener);
}
public void firePropertyChange (String propertyName,
Object old, Object newObj) {
changeSupport.firePropertyChange(propertyName, old, newObj);
}
在我拥有的属性的设置中:
public void setFname(String newName) {
firePropertyChange("fname", fname, newName);
this.fname = newName;
}
当我更新底层 bean 时,bean 会更新,但文本字段不会(即使我已经验证了属性更改事件正在被触发。