Module javafx.graphics
Package javafx.animation

## Class KeyFrame

- java.lang.Object
- - javafx.animation.KeyFrame

-     public final class KeyFrame
      extends Object

  Defines target values at a specified point in time for a set of variables that are interpolated along a `Timeline`.

  The developer controls the interpolation of a set of variables for the interval between successive key frames by providing a target value and an `Interpolator` associated with each variable. The variables are interpolated such that they will reach their target value at the specified time. An `onFinished` function is invoked on each `KeyFrame` if one is provided. A `KeyFrame` can optionally have a `name`, which will result in a cuepoint that is automatically added to the `Timeline`.

  Since:
    JavaFX 2.0
  See Also:
    `Timeline`, `KeyValue`, `Interpolator`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `KeyFrame​(Duration time, String name, KeyValue... values)` | Constructor of `KeyFrame`
    `KeyFrame​(Duration time, String name, EventHandler<ActionEvent> onFinished, Collection<KeyValue> values)` | Constructor of `KeyFrame`
    `KeyFrame​(Duration time, String name, EventHandler<ActionEvent> onFinished, KeyValue... values)` | Constructor of `KeyFrame`
    `KeyFrame​(Duration time, KeyValue... values)` | Constructor of `KeyFrame`
    `KeyFrame​(Duration time, EventHandler<ActionEvent> onFinished, KeyValue... values)` | Constructor of `KeyFrame`

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object obj)` | Indicates whether some other object is "equal to" this one.
    `String` | `getName()` | Returns the `name` of this `KeyFrame`.
    `EventHandler<ActionEvent>` | `getOnFinished()` | Returns the `onFinished` event handler of this `KeyFrame`.
    `Duration` | `getTime()` | Returns the time offset of this `KeyFrame`.
    `Set<KeyValue>` | `getValues()` | Returns an immutable `Set` of `KeyValue` instances.
    `int` | `hashCode()` | Returns a hash code for this `KeyFrame` object.
    `String` | `toString()` | Returns a string representation of this `KeyFrame` object.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### KeyFrame

          public KeyFrame​(Duration time,
                          String name,
                          EventHandler<ActionEvent> onFinished,
                          Collection<KeyValue> values)

      Constructor of `KeyFrame`

      If a passed in `KeyValue` is `null` or a duplicate, it will be ignored.

      Parameters:
        `time` - the `time`
        `name` - the `name`
        `onFinished` - the `onFinished`
        `values` - a `ObservableList` of `KeyValue` instances
      Throws:
        `NullPointerException` - if `time` is null
        `IllegalArgumentException` - if `time` is invalid (see `time`)

    - #### KeyFrame

          public KeyFrame​(Duration time,
                          String name,
                          EventHandler<ActionEvent> onFinished,
                          KeyValue... values)

      Constructor of `KeyFrame`

      If a passed in `KeyValue` is `null` or a duplicate, it will be ignored.

      Parameters:
        `time` - the `time`
        `name` - the `name`
        `onFinished` - the `onFinished`
        `values` - the `KeyValue` instances
      Throws:
        `NullPointerException` - if `time` is null
        `IllegalArgumentException` - if `time` is invalid (see `time`)

    - #### KeyFrame

          public KeyFrame​(Duration time,
                          EventHandler<ActionEvent> onFinished,
                          KeyValue... values)

      Constructor of `KeyFrame`
      Parameters:
        `time` - the `time`
        `onFinished` - the `onFinished`
        `values` - the `KeyValue` instances
      Throws:
        `NullPointerException` - if `time` is null
        `IllegalArgumentException` - if `time` is invalid (see `time`)

    - #### KeyFrame

          public KeyFrame​(Duration time,
                          String name,
                          KeyValue... values)

      Constructor of `KeyFrame`
      Parameters:
        `time` - the `time`
        `name` - the `name`
        `values` - the `KeyValue` instances
      Throws:
        `NullPointerException` - if `time` is null
        `IllegalArgumentException` - if `time` is invalid (see `time`)

    - #### KeyFrame

          public KeyFrame​(Duration time,
                          KeyValue... values)

      Constructor of `KeyFrame`
      Parameters:
        `time` - the `time`
        `values` - the `KeyValue` instances
      Throws:
        `NullPointerException` - if `time` is null
        `IllegalArgumentException` - if `time` is invalid (see `time`)

  - ### Method Detail

    - #### getTime

          public Duration getTime()

      Returns the time offset of this `KeyFrame`. The returned `Duration` defines the time offset within a single cycle of a `Timeline` at which the `KeyValues` will be set and at which the `onFinished` function variable will be called.

      The `time` of a `KeyFrame` has to be greater than or equal to `Duration.ZERO` and it cannot be `Duration.UNKNOWN`. Note: While the unit of `time` is a millisecond, the granularity depends on the underlying operating system and will in general be larger. For example animations on desktop systems usually run with a maximum of 60fps which gives a granularity of ~17 ms.

      Returns:
        the time offset

    - #### getValues

          public Set<KeyValue> getValues()

      Returns an immutable `Set` of `KeyValue` instances. A `KeyValue` defines a target and the desired value that should be interpolated at the specified time of this `KeyFrame`.
      Returns:
        an immutable `Set` of `KeyValue` instances

    - #### getOnFinished

          public EventHandler<ActionEvent> getOnFinished()

      Returns the `onFinished` event handler of this `KeyFrame`. The `onFinished` event handler is a function that is called when the elapsed time on a cycle passes the specified time of this `KeyFrame`. The `onFinished` function variable will be called if the elapsed time passes the indicated value, even if it never equaled the time value exactly.
      Returns:
        the `onFinished` event handler

    - #### getName

          public String getName()

      Returns the `name` of this `KeyFrame`. If a named `KeyFrame` is added to a `Timeline`, a cuepoint with the `name` and the `time` of the `KeyFrame` will be added automatically. If the `KeyFrame` is removed, the cuepoint will also be removed.
      Returns:
        the `name`

    - #### toString

          public String toString()

      Returns a string representation of this `KeyFrame` object.
      Overrides:
        `toString` in class `Object`
      Returns:
        the string representation

    - #### hashCode

          public int hashCode()

      Returns a hash code for this `KeyFrame` object.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        the hash code

    - #### equals

          public boolean equals​(Object obj)

      Indicates whether some other object is "equal to" this one. Two `KeyFrames` are considered equal, if their `time`, `onFinished`, and `values` are equal.
      Overrides:
        `equals` in class `Object`
      Returns:
        `true` if this is the same as obj, otherwise `false`