javafx progressbar动态绑定颜色以进行

时间:2018-04-15 23:40:58

标签: css javafx progress-bar progress progress-indicator

所以我需要为ProgressIndicator / Bar制作一个Timer。我用时间轴做了'动画',但我不知道如何改变ProgressIndicator的颜色?

private ProgressIndicator progress = new ProgressIndicator();
private Timeline timeline = new Timeline();

public void doTime(int sec){

    Timeline time = new Timeline(

    new KeyFrame(
            Duration.ZERO,       
            new KeyValue(progress.progressProperty(), 1)
    ),
    new KeyFrame(
            Duration.seconds(sec), 
            new KeyValue(progress.progressProperty(), 0)
    )
);
time.setCycleCount(1);
time.play();
}

如果进度为0​​.33,我希望颜色为红色。我没有找到任何进展的听众。

if (progress.getProgress() <= 0.33) {
     progress.setStyle("-fx-progress-color: red;");

}

你对如何实现这个有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以为进度指示器的progressProperty()添加一个监听器:

progress.progressProperty().addListener((obs, oldProgress, newProgress) -> {
    if (newProgress <= 0.33) {
        progress.setStyle("-fx-progress-color: red;");

    } else {
        progress.setStyle("");
    }
});