【问题标题】:How can I bind two SimpleDoubleProperty`s to each other with an exponential relation? JavaFX如何以指数关系将两个 SimpleDoubleProperty 相互绑定? JavaFX
【发布时间】:2016-07-28 11:07:47
【问题描述】:
我知道如何进行这样的绑定:
doublePropertyOne.bind(doublePropertyTwo.multiply(2));
我需要的是上面带有指数关系的示例:
doublePropertyOne.bind(doublePropertyTwo.asExponentialOfE());
这样我得到一个等于 E^doubleProperty 的 doubleProperty。
有什么方法可以完成这种关系,或者你会如何实现它?
【问题讨论】:
标签:
java
javafx
properties
relation
exponential
【解决方案1】:
您可以使用Bindings class 创建依赖于doublePropertyTwo 的绑定:
doublePropertyOne.bind(Bindings.createDoubleBinding(() -> Math.exp(doublePropertyTwo.get()), doublePropertyTwo));
这里作为第一个参数传递给createDoubleBinding 的Callable 会在每次从第二个参数(在本例中为doublePropertyTwo)开始传递的依赖项发生变化时重新评估。