Module javafx.graphics
Package javafx.scene.paint

## Class RadialGradient

- java.lang.Object
- - javafx.scene.paint.Paint
  - - javafx.scene.paint.RadialGradient

-     public final class RadialGradient
      extends Paint

  The `RadialGradient` class provides a way to fill a shape with a circular radial color gradient pattern. The user may specify 2 or more gradient colors, and this paint will provide an interpolation between each color.

  The user must specify the circle controlling the gradient pattern, which is defined by a center point and a radius. The user can also specify a separate focus point within that circle, which controls the location of the first color of the gradient. By default the focus is set to be the center of the circle.

  The center and radius are specified relative to a unit square, unless the `proportional` variable is false. By default proportional is true, and the gradient will be scaled to fill whatever shape it is applied to. The focus point is always specified relative to the center point by an angle and a distance relative to the radius.

  This paint will map the first color of the gradient to the focus point, and the last color to the perimeter of the circle, interpolating smoothly for any in-between colors specified by the user. Any line drawn from the focus point to the circumference will thus span all of the gradient colors.

  The focus distance will be clamped to the range `(-1, 1)` so that the focus point is always strictly inside the circle.

  The application provides an array of `Stop`s specifying how to distribute the colors along the gradient. The `Stop#offset` variable must be the range 0.0 to 1.0 and act like keyframes along the gradient. They mark where the gradient should be exactly a particular color.

  Since:
    JavaFX 2.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RadialGradient​(double focusAngle, double focusDistance, double centerX, double centerY, double radius, boolean proportional, CycleMethod cycleMethod, List<Stop> stops)` | Creates a new instance of RadialGradient.
    `RadialGradient​(double focusAngle, double focusDistance, double centerX, double centerY, double radius, boolean proportional, CycleMethod cycleMethod, Stop... stops)` | Creates a new instance of RadialGradient.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object obj)` | Indicates whether some other object is "equal to" this one.
    `double` | `getCenterX()` | Defines the X coordinate of the center point of the circle defining the gradient.
    `double` | `getCenterY()` | Defines the X coordinate of the center point of the circle defining the gradient.
    `CycleMethod` | `getCycleMethod()` | Defines the cycle method applied to the `RadialGradient`.
    `double` | `getFocusAngle()` | Defines the angle in degrees from the center of the gradient to the focus point to which the first color is mapped.
    `double` | `getFocusDistance()` | Defines the distance from the center of the gradient to the focus point to which the first color is mapped.
    `double` | `getRadius()` | Specifies the radius of the circle defining the extents of the color gradient.
    `List<Stop>` | `getStops()` | A sequence of 2 or more `Stop` values specifying how to distribute the colors along the gradient.
    `int` | `hashCode()` | Returns a hash code for this `RadialGradient` object.
    `boolean` | `isOpaque()` | Gets whether this Paint is completely opaque.
    `boolean` | `isProportional()` | Indicates whether the center and radius values are proportional or absolute.
    `String` | `toString()` | Returns a string representation of this `RadialGradient` object.
    `static RadialGradient` | `valueOf​(String value)` | Creates a radial gradient value from a string representation.

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

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

- - ### Constructor Detail

    - #### RadialGradient

          public RadialGradient​(double focusAngle,
                                double focusDistance,
                                double centerX,
                                double centerY,
                                double radius,
                                boolean proportional,
                                CycleMethod cycleMethod,
                                Stop... stops)

      Creates a new instance of RadialGradient.
      Parameters:
        `focusAngle` - the angle in degrees from the center of the gradient to the focus point to which the first color is mapped
        `focusDistance` - the distance from the center of the gradient to the focus point to which the first color is mapped
        `centerX` - the X coordinate of the center point of the gradient's circle
        `centerY` - the Y coordinate of the center point of the gradient's circle
        `radius` - the radius of the circle defining the extents of the color gradient
        `proportional` - whether the coordinates and sizes are proportional to the shape which this gradient fills
        `cycleMethod` - cycle method applied to the gradient
        `stops` - the gradient's color specification

    - #### RadialGradient

          public RadialGradient​(double focusAngle,
                                double focusDistance,
                                double centerX,
                                double centerY,
                                double radius,
                                boolean proportional,
                                CycleMethod cycleMethod,
                                List<Stop> stops)

      Creates a new instance of RadialGradient.
      Parameters:
        `focusAngle` - the angle in degrees from the center of the gradient to the focus point to which the first color is mapped
        `focusDistance` - the distance from the center of the gradient to the focus point to which the first color is mapped
        `centerX` - the X coordinate of the center point of the gradient's circle
        `centerY` - the Y coordinate of the center point of the gradient's circle
        `radius` - the radius of the circle defining the extents of the color gradient
        `proportional` - whether the coordinates and sizes are proportional to the shape which this gradient fills
        `cycleMethod` - cycle method applied to the gradient
        `stops` - the gradient's color specification

  - ### Method Detail

    - #### getFocusAngle

          public final double getFocusAngle()

      Defines the angle in degrees from the center of the gradient to the focus point to which the first color is mapped.
      Returns:
        the angle in degrees from the center of the gradient to the focus point to which the first color is mapped

    - #### getFocusDistance

          public final double getFocusDistance()

      Defines the distance from the center of the gradient to the focus point to which the first color is mapped. A distance of 0.0 will be at the center of the gradient circle. A distance of 1.0 will be on the circumference of the gradient circle.
      Returns:
        the distance from the center of the gradient to the focus point to which the first color is mapped

    - #### getCenterX

          public final double getCenterX()

      Defines the X coordinate of the center point of the circle defining the gradient. If proportional is true (the default), this value specifies a point on a unit square that will be scaled to match the size of the the shape that the gradient fills. The last color of the gradient is mapped to the perimeter of this circle.
      Default value:
        0.0
      Returns:
        the X coordinate of the center point of the circle defining the gradient

    - #### getCenterY

          public final double getCenterY()

      Defines the X coordinate of the center point of the circle defining the gradient. If proportional is true (the default), this value specifies a point on a unit square that will be scaled to match the size of the the shape that the gradient fills. The last color of the gradient is mapped to the perimeter of this circle.
      Default value:
        0.0
      Returns:
        the X coordinate of the center point of the circle defining the gradient

    - #### getRadius

          public final double getRadius()

      Specifies the radius of the circle defining the extents of the color gradient. If proportional is true (the default), this value specifies a size relative to unit square that will be scaled to match the size of the the shape that the gradient fills.
      Default value:
        1.0
      Returns:
        the radius of the circle defining the extents of the color gradient

    - #### isProportional

          public final boolean isProportional()

      Indicates whether the center and radius values are proportional or absolute. If this flag is true, the center point and radius are defined in a coordinate space where coordinates in the range `[0..1]` are scaled to map onto the bounds of the shape that the gradient fills. If this flag is false, then the center coordinates and the radius are specified in the local coordinate system of the node.
      Default value:
        true
      Returns:
        true if the center and radius values are proportional, otherwise absolute

    - #### getCycleMethod

          public final CycleMethod getCycleMethod()

      Defines the cycle method applied to the `RadialGradient`. One of: `CycleMethod.NO_CYCLE`, `CycleMethod.REFLECT`, or `CycleMethod.REPEAT`.
      Default value:
        NO_CYCLE
      Returns:
        the cycle method applied to this radial gradient

    - #### getStops

          public final List<Stop> getStops()

      A sequence of 2 or more `Stop` values specifying how to distribute the colors along the gradient. These values must be in the range 0.0 to 1.0. They act like keyframes along the gradient: they mark where the gradient should be exactly a particular color.

      Each stop in the sequence must have an offset that is greater than the previous stop in the sequence.

      The list is unmodifiable and will throw `UnsupportedOperationException` on each modification attempt.

      Default value:
        empty
      Returns:
        the list of Stop values

    - #### isOpaque

          public final boolean isOpaque()

      Gets whether this Paint is completely opaque. An opaque paint is one that has no alpha component in any of its colors. It may be possible for a Paint to be opaque and yet return false, if it cannot be easily determined whether the paint is actually opaque. For example, the ImagePattern may not be able to cheaply determine its opacity.
      Specified by:
        `isOpaque` in class `Paint`
      Returns:
        true if the Paint is opaque, false if it is not opaque or if it cannot be determined.
      Since:
        JavaFX 8.0

    - #### equals

          public boolean equals​(Object obj)

      Indicates whether some other object is "equal to" this one.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `obj` - the reference object with which to compare.
      Returns:
        `true` if this object is equal to the `obj` argument; `false` otherwise.

    - #### hashCode

          public int hashCode()

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

    - #### toString

          public String toString()

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

    - #### valueOf

          public static RadialGradient valueOf​(String value)

      Creates a radial gradient value from a string representation.

      The format of the string representation is based on JavaFX CSS specification for radial gradient which is

           radial-gradient([focus-angle <angle>, ]?
                           [focus-distance <percentage>, ]?
                           [center <point>, ]?
                           radius [<length> | <percentage>],
                           [[repeat | reflect],]?
                           <color-stop>[, <color-stop>]+)

      where

           <point> = [ [ <length> <length> ] | [ <percentage> | <percentage> ] ]
           <color-stop> = [ <color> [ <percentage> | <length>]? ]

      Currently length can be only specified in px, the specification of unit can be omited. Format of color representation is the one used in `Color.web(String color)`. The radial-gradient keyword can be omited. For additional information about the format of string representation, see the CSS Reference Guide.

      Examples:

           RadialGradient g
                = RadialGradient.valueOf("radial-gradient(center 100px 100px, radius 200px, red  0%, blue 30%, black 100%)");
           RadialGradient g
                = RadialGradient.valueOf("center 100px 100px, radius 200px, red  0%, blue 30%, black 100%");
           RadialGradient g
                = RadialGradient.valueOf("radial-gradient(center 50% 50%, radius 50%,  cyan, violet 75%, magenta)");
           RadialGradient g
                = RadialGradient.valueOf("center 50% 50%, radius 50%,  cyan, violet 75%, magenta");

      Parameters:
        `value` - the string to convert
      Returns:
        a `RadialGradient` object holding the value represented by the string argument.
      Throws:
        `NullPointerException` - if the `value` is `null`
        `IllegalArgumentException` - if the `value` cannot be parsed
      Since:
        JavaFX 2.1