私は、基礎となるデバイスドライバと対話するためのgetters/setterを持つクラスを持っています。 getterはデバイスからデータを読み込み、setterはデバイスにデータを書き込みます。 GUIコントロールにバインドするために、このクラスにFXプロパティを追加します。私はJavaBeanPropertyBuilderを使用してプロパティをビルドし、それは動作します。しかし、プロパティ値はGUI側だけでなくデバイス側でも変更できるので、タイマーでプロパティを更新する必要があり、すべてのバインディングを更新するためにプロパティを無効にしたいとします。出来ますか?コード例でJavaFXプロパティの強制無効化
UPD:今
class MyDevice {
public double getSpeed() {
return (double)driver.getParameter("speed");
}
public void setSpeed(double value) {
driver.setParameter("speed", value);
}
private DoubleProperty speed = new JavaBeanDoublePropertyBuilder().bean(this).name("speed").build();
public DoubleProperty speedProperty() {
return speed;
}
}
、私は、GUIコントロールにMyDevice::speedProperty
を結合して、値は、ドライバ側で変更された場合、私はすべての登録済みリスナーおよび更新を取り扱う強制的にspeedProperty.invalidate()
ような何かをしたいですバインディング(私は、デバイスの状態をタイマーが問い合わせるなどして、ドライバ側の変更について知っていますが、すべての利用可能なパラメータではありません)