Класс 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%.
На этом изображении показан приведённый выше пример кода для каждого из трёх методов циклирования:
- Начиная с:
- 1.6
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
Краткое описание полей
Поля, объявленные в интерфейсе Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PaintContext |
createContext |
Создаёт и возвращает PaintContext, используемый для создания линейного градиентного цветового узора. |
Point2D |
getEndPoint() |
Возвращает копию конечной точки оси градиента. |
Point2D |
getStartPoint() |
Возвращает копию начальной точки оси градиента. |
Методы, объявленные в классе MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
Подробное описание конструкторов
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для создания цветовых узоров.- См. также:
getStartPoint
public Point2D getStartPoint()
- Возвращает:
- объект
Point2D, являющийся копией точки, к которой привязан первый цвет этого объектаLinearGradientPaint
getEndPoint
public Point2D getEndPoint()
- Возвращает:
- объект
Point2D, являющийся копией точки, к которой привязан последний цвет этого объектаLinearGradientPaint
© 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