Spec-Zone.ru › OpenJDK 25

Класс LinearGradientPaint

java.lang.Object
java.awt.MultipleGradientPaint
java.awt.LinearGradientPaint
Все реализуемые интерфейсы:
Paint, Transparency
public final class LinearGradientPaint extends MultipleGradientPaint
Класс LinearGradientPaint предоставляет способ заполнить Shape линейным градиентным цветовым узором. Пользователь может задать два или более цвета градиента, а эта заливка обеспечит интерполяцию между каждым цветом. Пользователь также задаёт начальную и конечную точки, определяющие, где в пространстве пользователя должен начинаться и заканчиваться цветовой градиент.

Пользователь должен предоставить массив чисел с плавающей точкой, определяющий распределение цветов вдоль градиента. Значения должны находиться в диапазоне от 0.0 до 1.0 и служить ключевыми кадрами вдоль градиента (они отмечают точки, в которых градиент должен точно соответствовать определённому цвету).

Если пользователь не задаст значение первого ключевого кадра равным 0 и/или значение последнего ключевого кадра равным 1, в этих позициях будут созданы ключевые кадры, и там будут повторены первый и последний цвета. Поэтому, если пользователь задаст следующие массивы для создания градиента:

    {Color.BLUE, Color.RED}, {.3f, .7f}
это будет преобразовано в градиент со следующими ключевыми кадрами:
    {Color.BLUE, Color.BLUE, Color.RED, Color.RED}, {0f, .3f, .7f, 1f}

Пользователь также может выбрать действие объекта LinearGradientPaint при заполнении пространства за пределами начальной и конечной точек, задав для CycleMethod значение REFLECTION или REPEAT. Расстояния между любыми двумя цветами в любых отражённых или повторённых копиях градиента совпадают с расстоянием между этими же цветами между начальной и конечной точками. Обратите внимание: из-за дискретизации с точностью до пикселя возможны незначительные отклонения расстояний. Если метод циклирования не задан, по умолчанию будет выбран NO_CYCLE, что означает, что оставшаяся область будет заполнена цветами конечных точек.

Параметр colorSpace позволяет пользователю указать цветовое пространство для интерполяции: sRGB по умолчанию или линейное RGB.

В следующем коде показано типичное использование LinearGradientPaint:

    Point2D start = new Point2D.Float(0, 0);
    Point2D end = new Point2D.Float(50, 50);
    float[] dist = {0.0f, 0.2f, 1.0f};
    Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
    LinearGradientPaint p =
        new LinearGradientPaint(start, end, dist, colors);

Этот код создаст LinearGradientPaint, который выполняет интерполяцию между красным и белым на первых 20% градиента и между белым и синим на оставшихся 80%.

На этом изображении показан приведённый выше пример кода для каждого из трёх методов циклирования:

image showing the output of the example code

Начиная с:
1.6
См. также:
  • Paint
  • Graphics2D.setPaint(Paint)

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе MultipleGradientPaint

MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod

Краткое описание полей

Поля, объявленные в интерфейсе Transparency

BITMASK, OPAQUE, TRANSLUCENT

Краткое описание конструкторов

Конструктор Описание
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию.
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию.
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию.
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию.
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
Создаёт LinearGradientPaint.

Краткое описание методов

Модификатор и тип Метод Описание
PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
Создаёт и возвращает PaintContext, используемый для создания линейного градиентного цветового узора.
Point2D getEndPoint()
Возвращает копию конечной точки оси градиента.
Point2D getStartPoint()
Возвращает копию начальной точки оси градиента.

Методы, объявленные в классе MultipleGradientPaint

getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency

Методы, объявленные в классе Object

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

Подробное описание конструкторов

LinearGradientPaint

public LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию.
Параметры:
startX — координата X начальной точки оси градиента в пространстве пользователя
startY — координата Y начальной точки оси градиента в пространстве пользователя
endX — координата X конечной точки оси градиента в пространстве пользователя
endY — координата Y конечной точки оси градиента в пространстве пользователя
fractions — числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента
colors — массив цветов, соответствующих каждому дробному значению
Исключения:
NullPointerException — если массив fractions равен null или массив colors равен null,
IllegalArgumentException — если начальная и конечная точки совпадают, или fractions.length != colors.length, или размер colors меньше 2, или значение fractions меньше 0.0 либо больше 1.0, или fractions заданы не в строго возрастающем порядке

LinearGradientPaint

public LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию.
Параметры:
startX — координата X начальной точки оси градиента в пространстве пользователя
startY — координата Y начальной точки оси градиента в пространстве пользователя
endX — координата X конечной точки оси градиента в пространстве пользователя
endY — координата Y конечной точки оси градиента в пространстве пользователя
fractions — числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента
colors — массив цветов, соответствующих каждому дробному значению
cycleMethod — одно из значений: NO_CYCLE, REFLECT или REPEAT
Исключения:
NullPointerException — если массив fractions равен null, массив colors равен null или cycleMethod равен null
IllegalArgumentException — если начальная и конечная точки совпадают, или fractions.length != colors.length, или размер colors меньше 2, или значение fractions меньше 0.0 либо больше 1.0, или fractions заданы не в строго возрастающем порядке

LinearGradientPaint

public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию.
Параметры:
start — начальная Point2D оси градиента в пространстве пользователя
end — конечная Point2D оси градиента в пространстве пользователя
fractions — числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента
colors — массив цветов, соответствующих каждому дробному значению
Исключения:
NullPointerException — если одна из точек равна null, массив fractions равен null или массив colors равен null
IllegalArgumentException — если начальная и конечная точки совпадают, или fractions.length != colors.length, или размер colors меньше 2, или значение fractions меньше 0.0 либо больше 1.0, или fractions заданы не в строго возрастающем порядке

LinearGradientPaint

public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию.
Параметры:
start — начальная Point2D оси градиента в пространстве пользователя
end — конечная Point2D оси градиента в пространстве пользователя
fractions — числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента
colors — массив цветов, соответствующих каждому дробному значению
cycleMethod — одно из значений: NO_CYCLE, REFLECT или REPEAT
Исключения:
NullPointerException — если одна из точек равна null, массив fractions равен null, массив colors равен null или cycleMethod равен null
IllegalArgumentException — если начальная и конечная точки совпадают, или fractions.length != colors.length, или размер colors меньше 2, или значение fractions меньше 0.0 либо больше 1.0, или fractions заданы не в строго возрастающем порядке

LinearGradientPaint

@ConstructorProperties({"startPoint","endPoint","fractions","colors","cycleMethod","colorSpace","transform"}) public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
Создаёт LinearGradientPaint.
Параметры:
start — начальная Point2D оси градиента в пространстве пользователя
end — конечная Point2D оси градиента в пространстве пользователя
fractions — числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента
colors — массив цветов, соответствующих каждому дробному значению
cycleMethod — одно из значений: NO_CYCLE, REFLECT или REPEAT
colorSpace — используемое для интерполяции цветовое пространство: SRGB или LINEAR_RGB
gradientTransform — преобразование, применяемое к градиенту
Исключения:
NullPointerException — если одна из точек равна null, массив fractions равен null, массив colors равен null, cycleMethod равен null, colorSpace равен null или gradientTransform равен null
IllegalArgumentException — если начальная и конечная точки совпадают, или fractions.length != colors.length, или размер colors меньше 2, или значение fractions меньше 0.0 либо больше 1.0, или fractions заданы не в строго возрастающем порядке

Подробное описание методов

createContext

public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
Создаёт и возвращает PaintContext, используемый для создания линейного градиентного цветового узора. Сведения об обработке параметров со значением null см. в specification метода в интерфейсе Paint.
Параметры:
cm — предпочтительный ColorModel, представляющий наиболее удобный для вызывающего кода формат получения пиксельных данных, либо null, если предпочтений нет.
deviceBounds — ограничивающий прямоугольник графического примитива в пространстве устройства.
userBounds — ограничивающий прямоугольник графического примитива в пространстве пользователя.
transform — AffineTransform из пространства пользователя в пространство устройства.
hints — набор подсказок, которые объект контекста может использовать для выбора способа визуализации.
Возвращает:
PaintContext для создания цветовых узоров.
См. также:
  • Paint
  • PaintContext
  • ColorModel
  • Rectangle
  • Rectangle2D
  • AffineTransform
  • RenderingHints

getStartPoint

public Point2D getStartPoint()
Возвращает копию начальной точки оси градиента.
Возвращает:
объект Point2D, являющийся копией точки, к которой привязан первый цвет этого объекта LinearGradientPaint

getEndPoint

public Point2D getEndPoint()
Возвращает копию конечной точки оси градиента.
Возвращает:
объект Point2D, являющийся копией точки, к которой привязан последний цвет этого объекта LinearGradientPaint

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/LinearGradientPaint.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API