此代码将Label绑定到一个更新的SimpleIntegerPropertyValue,该值从10到1递减计数。

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


如何根据当前timeSeconds值绑定特定值?例如,如果timeSeconds > 500的值显示“ Greater”,否则显示“ Less”。

我尝试绑定返回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;
}

最佳答案

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

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

07-24 13:41