2010-02-02 93 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