JavaFX ProgressBar: como adicionar uma animação?

Criei uma barra de progresso e mudei a cor da barra.

É possível adicionar uma animação à barra de progresso, como a barra de progresso animada de auto-inicialização?

Aqui está o exemplo:link aqui

Na verdade, encontro uma solução, mas não é uma solução agradável.

css

.progress-bar-1 > .bar {
-fx-background-color: linear-gradient(
    from 0em 0.75em to 0.75em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-2 > .bar {
-fx-background-color: linear-gradient(
    from 0.25em 0.75em to 1em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-3 > .bar {
-fx-background-color: linear-gradient(
    from 0.5em 0.75em to 1.25em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-4 > .bar {
-fx-background-color: linear-gradient(
    from 0.75em 0.75em to 1.5em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-5 > .bar {
-fx-background-color: linear-gradient(
    from 1em 0.75em to 1.75em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-6 > .bar {
-fx-background-color: linear-gradient(
    from 1.25em 0.75em to 2em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-7 > .bar {
-fx-background-color: linear-gradient(
    from 1.5em 0.75em to 2.25em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-8 > .bar {
-fx-background-color: linear-gradient(
    from 1.75em 0.75em to 2.5em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-9 > .bar {
-fx-background-color: linear-gradient(
    from 2em 0.75em to 2.75em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-10 > .bar {
-fx-background-color: linear-gradient(
    from 2.25em 0.75em to 3em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-11 > .bar {
-fx-background-color: linear-gradient(
    from 2.5em 0.75em to 3.25em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

.progress-bar-12 > .bar {
-fx-background-color: linear-gradient(
    from 2.75em 0.75em to 3.5em 0px,
    repeat,
    -fx-accent 0%,
    -fx-accent 49%,
    derive(-fx-accent, 30%) 50%,
    derive(-fx-accent, 30%) 99%
);}

Eu crio 12 css. E use o AnimationTimer para fazer um loop neste 12 css.

Gostar:

    String str = "progress-bar-%d";
    progress.getStyleClass().add(String.format(str, i));
    AnimationTimer timer = new AnimationTimer(){
        @Override
        public void handle(long l){
            if(j != 10) {j++; return;}
            j = 0;
            progress.getStyleClass().removeAll(String.format(str, i));
            i++;
            if(i == 13){
                i = 1;
            }
            progress.getStyleClass().add(String.format(str, i));
        }
    };
    timer.start();

fxml

<ProgressBar fx:id="progress" prefWidth="200"  progress="0.5"  />

questionAnswers(1)

yourAnswerToTheQuestion