如何绑定到复合属性';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
实际上是不可变的,因此,如果边界发生变化,您可以确保必须替换属性的值