2012-04-04 58 views
3

我有兩個swing UI形式和一個模塊,它們都在查看。
每個用戶界面都將添加一個偵聽器,以更改屬性 ,並在發生更改時更新其自己的文本字段。java嘗試在通知中進行變異

basiccaly - 他們都應該更新模塊並從中更新。 有沒有簡單的方式來做到這一點內部消除具有約束力的框架

這是我如何做(但我不斷收到企圖通知變異) -

在我的文本框的更新

myTextField.getDocument().addDocumentListener(new TFDocumentListener() { 
      protected void userChangedTF() { 
       Float value = myTextField.getValue(); 
       if (value != null) { 
        myObj.setMyAttribute(value); 
       } 
      } 
     }); 

仍然在UI - 模塊中註冊的變化

 myObj.addMyAttributeChangedListener(new ValueChangeListener<Float>() { 
      @Override public void valueChanged(Float value) { 
       if (!myTextField.isFocusOwner()) { 
        myTextField.setValueIn(value); 
       } 
      } 
     }); 

- 當setMyAttribute發生 - 它調用此函數

private void notifyIntervalChanged(float newValue) { 
    for (ValueChangeListener valueChangeListener : intervalChangedListenersList) { 
     valueChangeListener.valueChanged(newValue); 
    } 
} 

,我宣佈

public interface ValueChangeListener<T> { 
    void valueChanged(T Value) 
} 
+0

中設置setText())ValueChangeListener是JSF的偵聽器?是不是,請編輯您的問題與SSCCE – mKorbel 2012-04-04 06:40:51

+0

JSF?搖擺。無論如何。謝謝。 – Jeb 2012-04-04 06:49:52

回答

13

如果您需要更改聽衆相同JTextComponent的內容包裝的變化(例如在SwingUtilities.invokeLater()

相關問題