我有一个类currentVoyage
,它有一个SimpleFloatProperty profitLossProperty()
,它绑定到一个标签:
profitLossLabel.textProperty().bind(
Bindings.format("$%.0f", currentVoyage.profitLossProperty()
));
这很好用,所以当profitLoss值改变时标签会更新。
现在我希望标签中的文本在值低于零时变为红色。我已经尝试过以下代码,但编译器抱怨then()
方法无法识别Color对象(但似乎otherwise()
方法确实如此)。我确定它很简单,但无法弄明白......
以下是代码:
profitLossLabel.textFillProperty().bind(
Bindings.when(currentVoyage.profitLossProperty().greaterThanOrEqualTo(0)
.then(Color.BLACK).otherwise(Color.RED)
));