在JavaFX
有一些物业,如boundsInParentProperty()
这是Bounds
类型。这个类有几个组件,这是不可观察的。如何在JavaFX中绑定到化合物属性的组件?
那么,如果我想绑定其中之一呢?例如Bounds#getMinX()
?
我们是否有一些bind...
函数来提取属性的组件?我可以肯定,听众会被告知单独的组件更改吗?
在JavaFX
有一些物业,如boundsInParentProperty()
这是Bounds
类型。这个类有几个组件,这是不可观察的。如何在JavaFX中绑定到化合物属性的组件?
那么,如果我想绑定其中之一呢?例如Bounds#getMinX()
?
我们是否有一些bind...
函数来提取属性的组件?我可以肯定,听众会被告知单独的组件更改吗?
Bindings.selectDouble
可以用来创建此绑定:
DoubleBinding minXBinding = Bindings.selectDouble(node.boundsInParentProperty(), "minX");
而且我可以肯定的是,监听程序将在单独的组件被通知更改?
是的。虽然它不是记载,Bounds
是不变的,通过查看源代码,你可以找出:
minX
存储在域与private
访问。final
。因此,Bounds
是有效的,因此如果边界发生变化,您可以确定属性的值必须被替换。
在boundsInParentProperty()
的情况下,您可以使用Bindings.createDoubleBinding
。
DoubleBinding minXBinding = Bindings.createDoubleBinding(() -> boundsInParentProperty.get().getMinX(), boundsInParentProperty);
DoubleProperty minX = new SimpleDoubleProperty();
minX.bind(minXBinding);