JavaFX&泛型 - 观察Node的属性,它是一个ObservableValue

时间:2014-11-17 21:18:49

标签: java generics javafx

给定声明为:

的JavaFX节点的属性
public final ReadOnlyObjectProperty<Bounds> boundsInParentProperty

...这是一个ObservableValue&lt; Bounds&gt;。以及在相应的ChangeListener&lt; Bounds&gt;中实现的方法:

public void changed(ObservableValue<? extends Bounds> observedValue, Bounds oldvalue, Bounds newvalue)

方法中的第一个参数是什么?

起初我使用了observeValue.getValue(),但后来我只能从第二个和第三个参数(newvalue - oldvalue)计算出各种Bounds坐标的增量。参数的类型是已知的(Bounds),因此它不像键值方案。我非常不信任我不明白的东西,那么这个'observeValue'是什么?我应该使用它吗?

编辑:在评论之后,我理解它用于确定哪个ObservableValue(如果是多个)是事件的来源。假设我想在屏幕上的两个可拖动节点之间绘制一条线,我想跟踪这两种方式的边界。如何确定哪个Node是更改事件的来源(获取其参考)?

1 个答案:

答案 0 :(得分:0)

有时您订阅了您的监听器以更改多个变量,您可能会对其中哪一个已更改感兴趣。这是Observer实现中非常流行的技巧。