给定声明为:
的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是更改事件的来源(获取其参考)?
答案 0 :(得分:0)
有时您订阅了您的监听器以更改多个变量,您可能会对其中哪一个已更改感兴趣。这是Observer实现中非常流行的技巧。