Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Класс Описание
static enum  MultipleGradientPaint.ColorSpaceType
Цветовое пространство, используемое для интерполяции градиента.
static enum  MultipleGradientPaint.CycleMethod
Метод, используемый при рисовании за пределами границ градиента.

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

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

BITMASK, OPAQUE, TRANSLUCENT
Модификатор и тип Поле Описание
static final int BITMASK
Представляет данные изображения, для которых гарантируется полная непрозрачность с альфа-значением 1.0 либо полная прозрачность с альфа-значением 0.0.
static final int OPAQUE
Представляет данные изображения, для которых гарантируется полная непрозрачность, то есть все пиксели имеют альфа-значение 1.0.
static final int TRANSLUCENT
Представляет данные изображения, которые содержат или могут содержать произвольные альфа-значения в диапазоне от 0.0 до 1.0 включительно.

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

Конструктор Описание
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
Модификатор и тип Метод Описание
final Color[] getColors()
Возвращает копию массива цветов, используемых этим градиентом.
final MultipleGradientPaint.ColorSpaceType getColorSpace()
Возвращает перечислимый тип, задающий цветовое пространство для интерполяции.
final MultipleGradientPaint.CycleMethod getCycleMethod()
Возвращает перечислимый тип, задающий поведение циклического повторения.
final float[] getFractions()
Возвращает копию массива чисел с плавающей точкой, используемого этим градиентом для вычисления распределения цветов.
final AffineTransform getTransform()
Возвращает копию преобразования, применённого к градиенту.
final int getTransparency()
Возвращает режим прозрачности объекта Paint.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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