更改标签的绑定值?

时间:2015-09-26 20:29:23

标签: java javafx

此代码将Label绑定到更新的SimpleIntegerPropertyValue,该值从10 - 1开始倒计时。

view.OVERALL_PROGRESS_LABEL.textProperty().bind(timeSeconds.divide(100).asString());

如何根据当前timeSeconds值的值来绑定特定值?例如,如果timeSeconds > 500的值显示“更大”,则显示“减少”

我尝试绑定一个返回ObservableValue的方法,但它的功能不正确。 (只是操纵数字以查看是否有变化)

private void someMethod(){
     view.OVERALL_PROGRESS_LABEL.textProperty().bind(test2());
}

private ObservableValue<? extends String> test2() {

    ObservableValue<String> test;
    if (timeSeconds.getValue() < 500){
        test = timeSeconds.multiply(1000).asString();
    } else {
        test = timeSeconds.divide(1000).asString();
    }
    return test;
}

1 个答案:

答案 0 :(得分:2)

您可以使用Bindings根据条件创建绑定。

view.OVERALL_PROGRESS_LABEL.textProperty().bind(Bindings.when(timeSeconds.
                              greaterThan(500)).then("Greater").otherwise("Less"));