我有一个标签labelSign
,上面显示+ ve或-ve符号。
,我还有另一个标签labelValue
,标签的文本颜色取决于labelSign
的文本。
如果有两种颜色,此代码就可以:
labelValue.textFillProperty().bind(Bindings.when(labelSign.textProperty().isEqualsTo("+ve")).then(Color.GREEN).otherwise(Color.RED));
如果存在三种情况下的labelSign:+ve
,-ve
和empty
,并且如果labelSign为{{1 }}?
答案 0 :(得分:2)
使用Bindings.createObjectBinding
创建一个具有unsigned int check_bit(unsigned int bit, unsigned int n) {
return n >> bit & 1;
}
属性作为依赖项的绑定。
text
private static Color textToColor(String text) {
...
}
这允许您使用任意算法来根据文本确定颜色。每当依赖项之一(在本例中为labelValue.textFillProperty().bind(Bindings.createObjectBinding(() -> textToColor(labelSign.getText()), labelSign.textProperty());
的{{1}}属性)更新时,都会进行更新。
另一方面,如果文本为空(=空字符串)...,则可以设置任意文本颜色而不会更改显示结果。