GradientPaint (Java SE 13 & JDK 13 )
Description: declaration: module: java.desktop, package: java.awt, class: GradientPaint
Keywords: java.awt.GradientPaint class

Module java.desktop
Package java.awt

# Class GradientPaint

java.lang.Object
java.awt.GradientPaint

All Implemented Interfaces:
  `Paint`, `Transparency`

    public class GradientPaint
    extends Object
    implements Paint

The `GradientPaint` class provides a way to fill a `Shape` with a linear color gradient pattern. If `Point` P1 with `Color` C1 and `Point` P2 with `Color` C2 are specified in user space, the `Color` on the P1, P2 connecting line is proportionally changed from C1 to C2. Any point P not on the extended P1, P2 connecting line has the color of the point P' that is the perpendicular projection of P on the extended P1, P2 connecting line. Points on the extended line outside of the P1, P2 segment can be colored in one of two ways.

- If the gradient is cyclic then the points on the extended P1, P2 connecting line cycle back and forth between the colors C1 and C2.
- If the gradient is acyclic then points on the P1 side of the segment have the constant `Color` C1 while points on the P2 side have the constant `Color` C2.

See Also:
  `Paint`, `Graphics2D.setPaint(java.awt.Paint)`

- ## Field Summary

  ### Fields declared in interface java.awt.Transparency

  `BITMASK, OPAQUE, TRANSLUCENT`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `GradientPaint​(float x1, float y1, Color color1, float x2, float y2, Color color2)` | Constructs a simple acyclic `GradientPaint` object.
  `GradientPaint​(float x1, float y1, Color color1, float x2, float y2, Color color2, boolean cyclic)` | Constructs either a cyclic or acyclic `GradientPaint` object depending on the `boolean` parameter.
  `GradientPaint​(Point2D pt1, Color color1, Point2D pt2, Color color2)` | Constructs a simple acyclic `GradientPaint` object.
  `GradientPaint​(Point2D pt1, Color color1, Point2D pt2, Color color2, boolean cyclic)` | Constructs either a cyclic or acyclic `GradientPaint` object depending on the `boolean` parameter.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `PaintContext` | `createContext​(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform xform, RenderingHints hints)` | Creates and returns a `PaintContext` used to generate a linear color gradient pattern.
  `Color` | `getColor1()` | Returns the color C1 anchored by the point P1.
  `Color` | `getColor2()` | Returns the color C2 anchored by the point P2.
  `Point2D` | `getPoint1()` | Returns a copy of the point P1 that anchors the first color.
  `Point2D` | `getPoint2()` | Returns a copy of the point P2 which anchors the second color.
  `int` | `getTransparency()` | Returns the transparency mode for this `GradientPaint`.
  `boolean` | `isCyclic()` | Returns `true` if the gradient cycles repeatedly between the two colors C1 and C2.

  ### Methods declared in class java.lang.Object

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

- ## Constructor Details

  - ### GradientPaint

    public GradientPaint​(float x1, float y1, Color color1, float x2, float y2, Color color2)
    Constructs a simple acyclic `GradientPaint` object.
    Parameters:
      `x1` - x coordinate of the first specified `Point` in user space
      `y1` - y coordinate of the first specified `Point` in user space
      `color1` - `Color` at the first specified `Point`
      `x2` - x coordinate of the second specified `Point` in user space
      `y2` - y coordinate of the second specified `Point` in user space
      `color2` - `Color` at the second specified `Point`
    Throws:
      `NullPointerException` - if either one of colors is null

  - ### GradientPaint

    public GradientPaint​(Point2D pt1, Color color1, Point2D pt2, Color color2)
    Constructs a simple acyclic `GradientPaint` object.
    Parameters:
      `pt1` - the first specified `Point` in user space
      `color1` - `Color` at the first specified `Point`
      `pt2` - the second specified `Point` in user space
      `color2` - `Color` at the second specified `Point`
    Throws:
      `NullPointerException` - if either one of colors or points is null

  - ### GradientPaint

    public GradientPaint​(float x1, float y1, Color color1, float x2, float y2, Color color2, boolean cyclic)
    Constructs either a cyclic or acyclic `GradientPaint` object depending on the `boolean` parameter.
    Parameters:
      `x1` - x coordinate of the first specified `Point` in user space
      `y1` - y coordinate of the first specified `Point` in user space
      `color1` - `Color` at the first specified `Point`
      `x2` - x coordinate of the second specified `Point` in user space
      `y2` - y coordinate of the second specified `Point` in user space
      `color2` - `Color` at the second specified `Point`
      `cyclic` - `true` if the gradient pattern should cycle repeatedly between the two colors; `false` otherwise

  - ### GradientPaint

    @ConstructorProperties({"point1","color1","point2","color2","cyclic"}) public GradientPaint​(Point2D pt1, Color color1, Point2D pt2, Color color2, boolean cyclic)
    Constructs either a cyclic or acyclic `GradientPaint` object depending on the `boolean` parameter.
    Parameters:
      `pt1` - the first specified `Point` in user space
      `color1` - `Color` at the first specified `Point`
      `pt2` - the second specified `Point` in user space
      `color2` - `Color` at the second specified `Point`
      `cyclic` - `true` if the gradient pattern should cycle repeatedly between the two colors; `false` otherwise
    Throws:
      `NullPointerException` - if either one of colors or points is null

- ## Method Details

  - ### getPoint1

    public Point2D getPoint1()
    Returns a copy of the point P1 that anchors the first color.
    Returns:
      a `Point2D` object that is a copy of the point that anchors the first color of this `GradientPaint`.

  - ### getColor1

    public Color getColor1()
    Returns the color C1 anchored by the point P1.
    Returns:
      a `Color` object that is the color anchored by P1.

  - ### getPoint2

    public Point2D getPoint2()
    Returns a copy of the point P2 which anchors the second color.
    Returns:
      a `Point2D` object that is a copy of the point that anchors the second color of this `GradientPaint`.

  - ### getColor2

    public Color getColor2()
    Returns the color C2 anchored by the point P2.
    Returns:
      a `Color` object that is the color anchored by P2.

  - ### isCyclic

    public boolean isCyclic()
    Returns `true` if the gradient cycles repeatedly between the two colors C1 and C2.
    Returns:
      `true` if the gradient cycles repeatedly between the two colors; `false` otherwise.

  - ### createContext

    public PaintContext createContext​(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform xform, RenderingHints hints)
    Creates and returns a `PaintContext` used to generate a linear color gradient pattern. See the `specification` of the method in the `Paint` interface for information on null parameter handling.
    Specified by:
      `createContext` in interface `Paint`
    Parameters:
      `cm` - the preferred `ColorModel` which represents the most convenient format for the caller to receive the pixel data, or `null` if there is no preference.
      `deviceBounds` - the device space bounding box of the graphics primitive being rendered.
      `userBounds` - the user space bounding box of the graphics primitive being rendered.
      `xform` - the `AffineTransform` from user space into device space.
      `hints` - the set of hints that the context object can use to choose between rendering alternatives.
    Returns:
      the `PaintContext` for generating color patterns.
    See Also:
      `Paint`, `PaintContext`, `ColorModel`, `Rectangle`, `Rectangle2D`, `AffineTransform`, `RenderingHints`

  - ### getTransparency

    public int getTransparency()
    Returns the transparency mode for this `GradientPaint`.
    Specified by:
      `getTransparency` in interface `Transparency`
    Returns:
      an integer value representing this `GradientPaint` object's transparency mode.
    See Also:
      `Transparency`