私は 2 つのスイング UI フォームと 1 つのモジュールを持っています。
各 UI は、属性の変更にリスナーを追加し、変更が発生したときに独自のテキスト フィールドを更新します。
basiccaly - どちらもモジュールを更新し、それから更新する必要があります。バインディングフレームワークなしでそれを行う簡単な方法はありますか
これが私が行う方法です(ただし、通知で変異を試み続けます)-
私のtextFieldの更新について
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)
}