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

如何绑定到复合属性';JavaFX中的组件?,java,javafx,Java,Javafx,JavaFX中有一些属性类似于类型。这个类有几个不可见的组件 那么,如果我想绑定到其中一个呢 例如到Bounds#getMinX() 我们是否有一些bind…函数来提取属性的组件?我是否可以确保在单独的组件更改时会通知侦听器?在boundsInParentProperty()的情况下,您可以使用Bindings.createDoubleBinding DoubleBinding minXBinding = Bindings.createDoubleBinding(() -> bounds

JavaFX
中有一些属性类似于类型。这个类有几个不可见的组件

那么,如果我想绑定到其中一个呢

例如到
Bounds#getMinX()


我们是否有一些
bind…
函数来提取属性的组件?我是否可以确保在单独的组件更改时会通知侦听器?

boundsInParentProperty()
的情况下,您可以使用
Bindings.createDoubleBinding

 DoubleBinding minXBinding = Bindings.createDoubleBinding(() -> boundsInParentProperty.get().getMinX(), boundsInParentProperty);

 DoubleProperty minX = new SimpleDoubleProperty();
 minX.bind(minXBinding);

对于
boundsInParentProperty()
可以使用
Bindings.createDoubleBinding

 DoubleBinding minXBinding = Bindings.createDoubleBinding(() -> boundsInParentProperty.get().getMinX(), boundsInParentProperty);

 DoubleProperty minX = new SimpleDoubleProperty();
 minX.bind(minXBinding);

绑定。选择double
可用于创建此绑定:

DoubleBinding minXBinding = Bindings.selectDouble(node.boundsInParentProperty(), "minX");
我可以确定听众会收到关于单独组件更改的通知吗

对。尽管没有文档说明
边界
是不可变的,但通过查看源代码,您可以发现:

  • 诸如
    minX
    之类的属性存储在具有
    private
    访问权限的字段中
  • 除了在构造函数中,没有对这些字段的写访问
  • 这些属性的getter是
    final

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

绑定。可以使用selectDouble
创建此绑定:

DoubleBinding minXBinding = Bindings.selectDouble(node.boundsInParentProperty(), "minX");
我可以确定听众会收到关于单独组件更改的通知吗

对。尽管没有文档说明
边界
是不可变的,但通过查看源代码,您可以发现:

  • 诸如
    minX
    之类的属性存储在具有
    private
    访问权限的字段中
  • 除了在构造函数中,没有对这些字段的写访问
  • 这些属性的getter是
    final
因此,
Bounds
实际上是不可变的,因此,如果边界发生变化,您可以确保必须替换属性的值