Module javafx.graphics
Package javafx.animation

# Class StrokeTransition

java.lang.Object
javafx.animation.Animation
javafx.animation.Transition
javafx.animation.StrokeTransition

public final class StrokeTransition extends Transition
This `Transition` creates an animation, that changes the stroke color of a shape over a `duration`. This is done by updating the `stroke` variable of the `shape` at regular intervals.

It starts from the `fromValue` if provided else uses the `shape` 's `stroke` value. (The `stroke` value has to be a `Color` in this case).

It stops at the `toValue` value.

Code Segment Example:

     import javafx.scene.shape.*;
     import javafx.animation.*;

     ...

         Rectangle rect = new Rectangle (100, 40, 100, 100);
         rect.setArcHeight(50);
         rect.setArcWidth(50);
         rect.setFill(null);

         StrokeTransition st = new StrokeTransition(Duration.millis(3000), rect, Color.RED, Color.BLUE);
         st.setCycleCount(4);
         st.setAutoReverse(true);

         st.play();

     ...

Since:
  JavaFX 2.0
See Also:
  - `Transition`
  - `Animation`

## Property Summary

Properties
Type
Property
Description
`final ObjectProperty<Duration>`
`duration`
The duration of this `StrokeTransition`.
`final ObjectProperty<Color>`
`fromValue`
Specifies the start color value for this `StrokeTransition`.
`final ObjectProperty<Shape>`
`shape`
The target shape of this `StrokeTransition`.
`final ObjectProperty<Color>`
`toValue`
Specifies the stop color value for this `StrokeTransition`.

### Properties inherited from class javafx.animation.Transition

`interpolator`

### Properties inherited from class javafx.animation.Animation

`autoReverse, currentRate, currentTime, cycleCount, cycleDuration, delay, onFinished, rate, status, totalDuration`

## Nested Class Summary

## Nested classes/interfaces inherited from class javafx.animation.Animation

`Animation.Status`

## Field Summary

### Fields inherited from class javafx.animation.Animation

`INDEFINITE`

## Constructor Summary

Constructors
Constructor
Description
`StrokeTransition()`
The constructor of `StrokeTransition`
`StrokeTransition(Duration duration)`
The constructor of `StrokeTransition`
`StrokeTransition(Duration duration, Color fromValue, Color toValue)`
The constructor of `StrokeTransition`
`StrokeTransition(Duration duration, Shape shape)`
The constructor of `StrokeTransition`
`StrokeTransition(Duration duration, Shape shape, Color fromValue, Color toValue)`
The constructor of `StrokeTransition`

## Method Summary

Modifier and Type
Method
Description
`final ObjectProperty<Duration>`
`durationProperty()`
The duration of this `StrokeTransition`.
`final ObjectProperty<Color>`
`fromValueProperty()`
Specifies the start color value for this `StrokeTransition`.
`final Duration`
`getDuration()`
Gets the value of the `duration` property.
`final Color`
`getFromValue()`
Gets the value of the `fromValue` property.
`final Shape`
`getShape()`
Gets the value of the `shape` property.
`final Color`
`getToValue()`
Gets the value of the `toValue` property.
`protected void`
`interpolate(double frac)`
The method `interpolate()` has to be provided by implementations of `Transition`.
`final void`
`setDuration(Duration value)`
Sets the value of the `duration` property.
`final void`
`setFromValue(Color value)`
Sets the value of the `fromValue` property.
`final void`
`setShape(Shape value)`
Sets the value of the `shape` property.
`final void`
`setToValue(Color value)`
Sets the value of the `toValue` property.
`final ObjectProperty<Shape>`
`shapeProperty()`
The target shape of this `StrokeTransition`.
`final ObjectProperty<Color>`
`toValueProperty()`
Specifies the stop color value for this `StrokeTransition`.

### Methods inherited from class javafx.animation.Transition

`getCachedInterpolator, getInterpolator, getParentTargetNode, interpolatorProperty, setInterpolator`

### Methods inherited from class javafx.animation.Animation

`autoReverseProperty, currentRateProperty, currentTimeProperty, cycleCountProperty, cycleDurationProperty, delayProperty, getCuePoints, getCurrentRate, getCurrentTime, getCycleCount, getCycleDuration, getDelay, getOnFinished, getRate, getStatus, getTargetFramerate, getTotalDuration, isAutoReverse, jumpTo, jumpTo, onFinishedProperty, pause, play, playFrom, playFrom, playFromStart, rateProperty, setAutoReverse, setCycleCount, setCycleDuration, setDelay, setOnFinished, setRate, setStatus, statusProperty, stop, totalDurationProperty`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Property Details

### shape

public final ObjectProperty<Shape> shapeProperty
The target shape of this `StrokeTransition`.

It is not possible to change the target `shape` of a running `StrokeTransition`. If the value of `shape` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

See Also:
  - `getShape()`
  - `setShape(Shape)`
  - `shapeProperty()`

### duration

public final ObjectProperty<Duration> durationProperty
The duration of this `StrokeTransition`.

It is not possible to change the `duration` of a running `StrokeTransition`. If the value of `duration` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Note: While the unit of `duration` 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. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
See Also:
  - `getDuration()`
  - `setDuration(Duration)`
  - `durationProperty()`

### fromValue

public final ObjectProperty<Color> fromValueProperty
Specifies the start color value for this `StrokeTransition`.

It is not possible to change `fromValue` of a running `StrokeTransition`. If the value of `fromValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
See Also:
  - `getFromValue()`
  - `setFromValue(Color)`
  - `fromValueProperty()`

### toValue

public final ObjectProperty<Color> toValueProperty
Specifies the stop color value for this `StrokeTransition`.

It is not possible to change `toValue` of a running `StrokeTransition`. If the value of `toValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
See Also:
  - `getToValue()`
  - `setToValue(Color)`
  - `toValueProperty()`

## Constructor Details

### StrokeTransition

public StrokeTransition(Duration duration, Shape shape, Color fromValue, Color toValue)
The constructor of `StrokeTransition`

Parameters:
  `duration` - The duration of the `StrokeTransition`
  `shape` - The `shape` which filling will be animated
  `fromValue` - The start value of the color-animation
  `toValue` - The end value of the color-animation

### StrokeTransition

public StrokeTransition(Duration duration, Color fromValue, Color toValue)
The constructor of `StrokeTransition`

Parameters:
  `duration` - The duration of the `StrokeTransition`
  `fromValue` - The start value of the color-animation
  `toValue` - The end value of the color-animation

### StrokeTransition

public StrokeTransition(Duration duration, Shape shape)
The constructor of `StrokeTransition`

Parameters:
  `duration` - The duration of the `StrokeTransition`
  `shape` - The `shape` which stroke paint will be animated

### StrokeTransition

public StrokeTransition(Duration duration)
The constructor of `StrokeTransition`

Parameters:
  `duration` - The duration of the `StrokeTransition`

### StrokeTransition

public StrokeTransition()
The constructor of `StrokeTransition`

## Method Details

### setShape

public final void setShape(Shape value)
Sets the value of the `shape` property.

Property description:
  The target shape of this `StrokeTransition`.

  It is not possible to change the target `shape` of a running `StrokeTransition`. If the value of `shape` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Parameters:
  `value` - the value for the `shape` property
See Also:
  - `getShape()`
  - `shapeProperty()`

### getShape

public final Shape getShape()
Gets the value of the `shape` property.

Property description:
  The target shape of this `StrokeTransition`.

  It is not possible to change the target `shape` of a running `StrokeTransition`. If the value of `shape` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Returns:
  the value of the `shape` property
See Also:
  - `setShape(Shape)`
  - `shapeProperty()`

### shapeProperty

public final ObjectProperty<Shape> shapeProperty()
The target shape of this `StrokeTransition`.

It is not possible to change the target `shape` of a running `StrokeTransition`. If the value of `shape` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Returns:
  the `shape` property
See Also:
  - `getShape()`
  - `setShape(Shape)`

### setDuration

public final void setDuration(Duration value)
Sets the value of the `duration` property.

Property description:
  The duration of this `StrokeTransition`.

  It is not possible to change the `duration` of a running `StrokeTransition`. If the value of `duration` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

  Note: While the unit of `duration` 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. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
Parameters:
  `value` - the value for the `duration` property
See Also:
  - `getDuration()`
  - `durationProperty()`

### getDuration

public final Duration getDuration()
Gets the value of the `duration` property.

Property description:
  The duration of this `StrokeTransition`.

  It is not possible to change the `duration` of a running `StrokeTransition`. If the value of `duration` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

  Note: While the unit of `duration` 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. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
Returns:
  the value of the `duration` property
See Also:
  - `setDuration(Duration)`
  - `durationProperty()`

### durationProperty

public final ObjectProperty<Duration> durationProperty()
The duration of this `StrokeTransition`.

It is not possible to change the `duration` of a running `StrokeTransition`. If the value of `duration` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Note: While the unit of `duration` 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. Setting duration to value lower than `Duration.ZERO` will result in `IllegalArgumentException`.

Default value:
  400ms
Returns:
  the `duration` property
See Also:
  - `getDuration()`
  - `setDuration(Duration)`

### setFromValue

public final void setFromValue(Color value)
Sets the value of the `fromValue` property.

Property description:
  Specifies the start color value for this `StrokeTransition`.

  It is not possible to change `fromValue` of a running `StrokeTransition`. If the value of `fromValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
Parameters:
  `value` - the value for the `fromValue` property
See Also:
  - `getFromValue()`
  - `fromValueProperty()`

### getFromValue

public final Color getFromValue()
Gets the value of the `fromValue` property.

Property description:
  Specifies the start color value for this `StrokeTransition`.

  It is not possible to change `fromValue` of a running `StrokeTransition`. If the value of `fromValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
Returns:
  the value of the `fromValue` property
See Also:
  - `setFromValue(Color)`
  - `fromValueProperty()`

### fromValueProperty

public final ObjectProperty<Color> fromValueProperty()
Specifies the start color value for this `StrokeTransition`.

It is not possible to change `fromValue` of a running `StrokeTransition`. If the value of `fromValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
Returns:
  the `fromValue` property
See Also:
  - `getFromValue()`
  - `setFromValue(Color)`

### setToValue

public final void setToValue(Color value)
Sets the value of the `toValue` property.

Property description:
  Specifies the stop color value for this `StrokeTransition`.

  It is not possible to change `toValue` of a running `StrokeTransition`. If the value of `toValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
Parameters:
  `value` - the value for the `toValue` property
See Also:
  - `getToValue()`
  - `toValueProperty()`

### getToValue

public final Color getToValue()
Gets the value of the `toValue` property.

Property description:
  Specifies the stop color value for this `StrokeTransition`.

  It is not possible to change `toValue` of a running `StrokeTransition`. If the value of `toValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
Returns:
  the value of the `toValue` property
See Also:
  - `setToValue(Color)`
  - `toValueProperty()`

### toValueProperty

public final ObjectProperty<Color> toValueProperty()
Specifies the stop color value for this `StrokeTransition`.

It is not possible to change `toValue` of a running `StrokeTransition`. If the value of `toValue` is changed for a running `StrokeTransition`, the animation has to be stopped and started again to pick up the new value.

Default value:
  `null`
Returns:
  the `toValue` property
See Also:
  - `getToValue()`
  - `setToValue(Color)`

### interpolate

protected void interpolate(double frac)
The method `interpolate()` has to be provided by implementations of `Transition`. While a `Transition` is running, this method is called in every frame. The parameter defines the current position with the animation. At the start, the fraction will be `0.0` and at the end it will be `1.0`. How the parameter increases, depends on the `interpolator`, e.g. if the `interpolator` is `Interpolator.LINEAR`, the fraction will increase linear. This method must not be called by the user directly.

Specified by:
  `interpolate` in class `Transition`
Parameters:
  `frac` - The relative position