2016-07-28 5 views
0

Я знаю, как сделать привязку, как это:Как связать два элемента SimpleDoubleProperty друг с другом с экспоненциальным соотношением? JavaFX

doublePropertyOne.bind(doublePropertyTwo.multiply(2)); 

Что мне нужно в приведенном выше примере с экспоненциальной зависимостью:

doublePropertyOne.bind(doublePropertyTwo.asExponentialOfE()); 

Так что я получаю doubleProperty который равен E^doubleProperty , Есть ли способ выполнить это отношение или как еще вы его реализуете?

ответ

3

Вы можете использовать Bindings class к обрешетке связи, которая зависит от doublePropertyTwo:

doublePropertyOne.bind(Bindings.createDoubleBinding(() -> Math.exp(doublePropertyTwo.get()), doublePropertyTwo)); 

Здесь Callable передается в качестве первого параметра createDoubleBinding переоценивается каждый раз, когда зависимости прошли, начиная со вторым параметром (в данном случае doublePropertyTwo) изменение.