所以我需要为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;");
}
你对如何实现这个有什么想法吗?
答案 0 :(得分:2)
您可以为进度指示器的progressProperty()
添加一个监听器:
progress.progressProperty().addListener((obs, oldProgress, newProgress) -> {
if (newProgress <= 0.33) {
progress.setStyle("-fx-progress-color: red;");
} else {
progress.setStyle("");
}
});