将属性绑定到Cosine JavaFX

时间:2015-12-14 15:11:18

标签: javafx binding

目前,JavafX中可用的属性绑定包括.add().subtract().multiple()negate()等。 我想绑定一个双重属性(角度)的余弦,类似于

myProperty().bind(cos(angleProperty).multiply(factorProperty));

我可以通过聆听anglePropertyfactorProperty中的更改来实现这一点,但想知道我是否可以制作自己的cos绑定。

2 个答案:

答案 0 :(得分:3)

你可以做到

myProperty().bind(Bindings.createDoubleBinding(() ->
    Math.cos(angleProperty.get()) * factorProperty.get(),
    angleProperty, factorProperty));

DoubleBinding height = new DoubleBinding() {
    {
         bind(angleProperty);
         bind(factorProperty);
    }
    @Override
    public double computeValue() {
         return Math.cos(angleProperty.get()) * factorProperty.get() ;
    }
};

myProperty().bind(height);

答案 1 :(得分:1)

您也可以使用此库

https://github.com/lestard/advanced-bindings

提供比标准JavaFX更多数学函数的绑定。