2010-02-02 97 views
1

我有一个jlabel和使用netbeans我已经绑定到窗体上的属性。Java netbeans绑定。如何刷新绑定..?

问题是我如何刷新绑定值时,该标签文本已绑定的属性发生了变化。 this.firePropertyChange工作,但味道不好......我想someonething像this.bindingGroup.refresh或this.refresh将更新的标签文本

例如 的jLabel.text势必形成someValue中

private someClass someThing; 
public String getSomeValue(){ 
    return someThing.getSomeThing(); 
} 
//when someMethof is fired the jlabel should update its text value 
public void someMethod(){ 
    someThing = someThingElse; 
    bindingGroup.refresh()????? 

} 

回答

1

不幸的是,如果你想使用Bean绑定API,你必须处理的firePropertyChange气味。

不过,我看不出有什么问题?这是一个非常简单的改变。将您的课程更改为以下内容:

private someClass someThing; 
public String getSomeValue(){ 
    return someThing.getSomeThing(); 
} 
//when someMethof is fired the jlabel should update its text value 
public void someMethod(){ 
    someClass oldValue = someThing; 
    someThing = someThingElse; 
    this.firePropertyChange("someValue", oldValue, someThing); 

} 

结帐this article on java.net for more details

+0

我用fireprop找到的东西...是旧val和新val被忽略。这不是一件坏事。如果有办法找到在运行时更改的属性名称,那么我可以调用我的bind()方法,该方法将自动为我执行所有操作。 – Mark 2010-02-02 19:23:10

+2

我发现如果你用三个空参数在主容器上调用firePropertyChange,它会导致所有绑定被刷新。干杯! :d – Mark 2010-05-03 22:12:54