javafx Animazione di una proprietà con la cronologia

Esempio

Button button = new Button("I'm here...");

Timeline t = new Timeline(
        new KeyFrame(Duration.seconds(0), new KeyValue(button.translateXProperty(), 0)),
        new KeyFrame(Duration.seconds(2), new KeyValue(button.translateXProperty(), 80))
);
t.setAutoReverse(true);
t.setCycleCount(Timeline.INDEFINITE);
t.play();

Il modo più semplice e flessibile per utilizzare l'animazione in JavaFX è con la classe Timeline . Una timeline funziona utilizzando KeyFrame s come punti noti dell'animazione. In questo caso, sa che all'inizio ( 0 seconds ) che translateXProperty deve essere zero e alla fine ( 2 seconds ) che la proprietà deve essere 80 . Puoi anche fare altre cose come impostare l'animazione per invertire e quante volte dovrebbe essere eseguita.

Le linee temporali possono animare più proprietà contemporaneamente:

Timeline t = new Timeline(
        new KeyFrame(Duration.seconds(0), new KeyValue(button.translateXProperty(), 0)),
        new KeyFrame(Duration.seconds(1), new KeyValue(button.translateYProperty(), 10)),
        new KeyFrame(Duration.seconds(2), new KeyValue(button.translateXProperty(), 80)),
        new KeyFrame(Duration.seconds(3), new KeyValue(button.translateYProperty(), 90))
);                                                                //   ^ notice X vs Y

Questa animazione prende la proprietà Y da 0 (valore iniziale della proprietà) a 10 secondi in e termina a 90 in tre secondi. Nota che quando l'animazione ricomincia, Y torna a zero, anche se non è il primo valore nella timeline.