JavaFX - 负文本值上的标签文本颜色

JavaFX - Label text color on negative text value

我想更改标签的文本颜色,以防其文本值为负数(或以“-”开头)。是否有适当的绑定才能使其正常工作?

不行,需要自己创建,例如

Label label = ...
IntegerExpression value = ...

label.textProperty().bind(value.asString());
label.textFillProperty().bind(Bindings.when(value.lessThan(0))
                                      .then(Color.RED)
                                      .otherwise(Color.BLACK));

如果您没有允许您以这种方式创建条件的表达式,您当然也可以创建依赖于 Labeltext 属性:

Label label = ...
label.textFillProperty().bind(Bindings.createObjectBinding(() -> label.getText().startsWith("-")
                                                                 ? Color.RED
                                                                 : Color.BLACK,
                                                           label.textProperty()));