Class Timeline

java.lang.Object
javafx.animation.Animation
javafx.animation.Timeline

public final class Timeline
extends Animation
A Timeline can be used to define a free form animation of any WritableValue, for example, all JavaFX Properties.

A Timeline, defined by one or more KeyFrames, processes individual KeyFrame sequentially, in the order specified by KeyFrame.time. The animated properties, defined as key values in KeyFrame.values, are interpolated to/from the targeted key values at the specified time of the KeyFrame to Timeline's initial position, depends on Timeline's direction.

Timeline processes individual KeyFrame at or after specified time interval elapsed, it does not guarantee the timing when KeyFrame is processed.

The Animation.cycleDurationProperty() will be set to the largest time value of Timeline's keyFrames.

If a KeyFrame is not provided for the time==0s instant, one will be synthesized using the target values that are current at the time Animation.play() or Animation.playFromStart() is called.

It is not possible to change the keyFrames of a running Timeline. If the value of keyFrames is changed for a running Timeline, it has to be stopped and started again to pick up the new value.

A simple Timeline can be created like this:

 final Timeline timeline = new Timeline();
 timeline.setCycleCount(2);
 timeline.setAutoReverse(true);
 timeline.getKeyFrames().add(new KeyFrame(Duration.millis(5000),
   new KeyValue (node.translateXProperty(), 25)));
 timeline.play();

This Timeline will run for 10s, animating the node by x axis to value 25 and then back to 0 on the second cycle.

Warning: A running Timeline is being referenced from the FX runtime. Infinite Timeline might result in a memory leak if not stopped properly. All the objects with animated properties would not be garbage collected.

Since:
JavaFX 2.0
See Also:
Animation, KeyFrame, KeyValue
  • Constructor Details

    • Timeline

      public Timeline​(double targetFramerate, KeyFrame... keyFrames)
      The constructor of Timeline. This constructor allows to define a Animation.targetFramerate.
      Parameters:
      targetFramerate - The custom target frame rate for this Timeline
      keyFrames - The keyframes of this Timeline
    • Timeline

      public Timeline​(KeyFrame... keyFrames)
      The constructor of Timeline.
      Parameters:
      keyFrames - The keyframes of this Timeline
    • Timeline

      public Timeline​(double targetFramerate)
      The constructor of Timeline. This constructor allows to define a Animation.targetFramerate.
      Parameters:
      targetFramerate - The custom target frame rate for this Timeline
    • Timeline

      public Timeline()
      The constructor of Timeline.
  • Method Details

    • getKeyFrames

      public final ObservableList<KeyFrame> getKeyFrames()
      Returns the KeyFrames of this Timeline.
      Returns:
      the KeyFrames
    • stop

      public void stop()
      Stops the animation and resets the play head to its initial position. If the animation is already stopped, this method has no effect.

      Note:

      • stop() is an asynchronous call, the Animation may not stop immediately.
      Overrides:
      stop in class Animation