Класс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.awt.MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
Краткое описание полей
Поля, объявленные в интерфейсе java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения по умолчанию и цветовой моделью NO_CYCLE. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовой моделью SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения по умолчанию и цветовой моделью NO_CYCLE. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовой моделью SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PaintContext |
createContext |
Создаёт и возвращает PaintContext, используемый для генерации линейного градиента цветов. |
Point2D |
getEndPoint() |
Возвращает копию конечной точки оси градиента. |
Point2D |
getStartPoint() |
Возвращает копию начальной точки оси градиента. |
Методы, объявленные в классе java.awt.MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
Подробное описание конструкторов
LinearGradientPaint
public LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
LinearGradientPaint с методом повторения по умолчанию и цветовым пространством SRGB.- Параметры:
-
startX- координата X начальной точки оси градиента в пространстве пользователя -
startY- координата Y начальной точки оси градиента в пространстве пользователя -
endX- координата X конечной точки оси градиента в пространстве пользователя -
endY- координата Y конечной точки оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению - Исключения:
-
NullPointerException- если массивfractionsили массив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 с цветовым пространством по умолчанию.- Параметры:
-
startX- координата X начальной точки оси градиента в пространстве пользователя -
startY- координата Y начальной точки оси градиента в пространстве пользователя -
endX- координата X конечной точки оси градиента в пространстве пользователя -
endY- координата Y конечной точки оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению -
cycleMethod- методNO_CYCLE,REFLECTилиREPEAT - Исключения:
-
NullPointerException- если массивfractions, массивcolorsили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 с методом повторения по умолчанию и цветовым пространством SRGB.- Параметры:
-
start- начальнаяPoint2Dоси градиента в пространстве пользователя -
end- конечнаяPoint2Dоси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению - Исключения:
-
NullPointerException- если одна из точек равна null, или массивfractionsили массив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 с цветовым пространством по умолчанию.- Параметры:
-
start- начальнаяPoint2Dоси градиента в пространстве пользователя -
end- конечнаяPoint2Dоси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению -
cycleMethod- методNO_CYCLE,REFLECTилиREPEAT - Исключения:
-
NullPointerException- если одна из точек равна null, или массивfractions, массивcolorsили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, массивcolors,cycleMethod,colorSpaceили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, используемый для генерации линейного цветового градиента. См. specification метода в интерфейсе Paint для получения информации об обработке null параметров.- Параметры:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/LinearGradientPaint.html