如何在JavaFX中绑定到复合属性的组件?

时间:2016-05-19 11:41:30

标签: java javafx

JavaFX中有一些属性boundsInParentProperty()属于Bounds类型。这个类有几个组件,这些组件是不可观察的。

那么,如果我想绑定其中一个怎么办?

例如Bounds#getMinX()

我们是否有一些bind...函数来提取属性的组件?我可以确定听众会收到有关单独组件更改的通知吗?

2 个答案:

答案 0 :(得分:2)

Bindings.selectDouble可用于创建此绑定:

DoubleBinding minXBinding = Bindings.selectDouble(node.boundsInParentProperty(), "minX");
  

我可以确定听众会收到有关单独组件更改的通知吗?

是。即使没有记录Bounds是不可变的,通过查看源代码,您可以找到:

  • minX等属性存储在private访问权限的字段中。
  • 除了构造函数之外,没有对这些字段的写访问。
  • 这些属性的getter为final

因此Bounds实际上是不可变的,因此如果边界发生变化,您可以确定必须替换属性的值。

答案 1 :(得分:0)

对于UIPanGestureRecognizer,您可以使用boundsInParentProperty()

Bindings.createDoubleBinding