2012-04-04 61 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()

相关问题