给定类型为id
的Java表达式(比如BooleanBinding
),使用x.lessThan(y)
的自定义映射将ObjectProperty p
绑定到它的最简单方法是什么? / p>
具体来说,是否有比以下更简单的方法?
boolean
我会喜欢做BooleanBinding b = x.lessThan(y);
p.bind(new ObjectBinding<Paint>(){
{
super.bind(b);
}
@Override
protected Paint computeValue() {
if(b.get()){
return Color.BLUE;
} else {
return Color.RED;
}
}
});
答案 0 :(得分:3)
您可以使用Bindings.when
:
p.bind(Bindings.when(x.lessThan(y)).then(Color.BLUE).otherwise(Color.RED));
请参阅https://docs.oracle.com/javase/8/javafx/api/javafx/beans/binding/When.html和https://docs.oracle.com/javase/8/javafx/api/javafx/beans/binding/Bindings.html#when-javafx.beans.value.ObservableBooleanValue-