我有一个swing应用程序,文本框绑定到我的模型上的属性(这是一个READ_WRITE AutoBinding)。该模型还有一个isDirty属性,我想绑定到按钮的启用属性。
当我更改isDirty的状态时,如何正确通知绑定。
这是我的绑定代码:
BeanProperty<PaChannelConfig, Boolean> paChannelConfigBeanProperty_1 =
BeanProperty.create("dirty");
BeanProperty<JButton, Boolean> jButtonBeanProperty =
BeanProperty.create("enabled");
AutoBinding<PaChannelConfig, Boolean, JButton, Boolean> autoBinding_2 =
Bindings.createAutoBinding(
UpdateStrategy.READ,
model,
paChannelConfigBeanProperty_1,
btnApply, jButtonBeanProperty);
autoBinding_2.bind();
添加此通知的正确方法是什么?
答案 0 :(得分:0)
基本上,模型应该有方法
addPropertyChangeListener(PropertyChangeListener)
removePropertyChangeListener(PropertyChangeListener)
firePropertyChange(PropertyChangeEvent)
查看类PropertyChangeSupport,该类具有上述方法的实现。
在模型中,方法setDirty(boolean)
应该像这样实现:
public void setDirty(boolean dirty) {
boolean old = this.dirty;
this.dirty = dirty;
firePropertyChange(new PropertyChangeEvent("dirty", old, dirty));
}
希望有所帮助
答案 1 :(得分:0)
您可以使用PropertyChangeSupport轻松实施对属性更改通知的支持。提供的链接中的文档有一个如何设置和使用它的示例。