2010-11-09 56 views
1

我有一个文本框绑定到我的模型(这是一个READ_WRITE AutoBinding)属性的swing应用程序。该模型还有一个isDirty属性,我想绑定到一个按钮的启用属性。摆动bean绑定:我如何通知模型已更改的目标?

当我更改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

基本上,该模型应该具有的方法

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)); 
} 

希望帮助

0

您可以使用PropertyChangeSupport轻松实现属性更改通知的支持。提供的链接中的文档提供了一个如何设置和使用它的例子。