Spec-Zone.ru › OpenJDK 21

Класс 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(java.awt.Paint)

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

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

MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod

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

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

BITMASK, OPAQUE, TRANSLUCENT

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

Конструктор Описание
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
Создаёт LinearGradientPaint с методом повторения по умолчанию и цветовым пространством по умолчанию.
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт LinearGradientPaint с цветовым пространством по умолчанию.
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
Создаёт LinearGradientPaint с методом повторения по умолчанию и цветовым пространством по умолчанию.
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт LinearGradientPaint с цветовым пространством по умолчанию.
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()
Возвращает копию начальной точки оси градиента.

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

getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency

Методы, объявленные в классе java.lang.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 с методом повторения по умолчанию и цветовым пространством по умолчанию.
Параметры:
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 с цветовым пространством по умолчанию.
Параметры:
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 с методом повторения по умолчанию и цветовым пространством по умолчанию.
Параметры:
start - точка начала оси градиента в пространстве пользователя
end - точка конца оси градиента в пространстве пользователя
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 с пространством цветов по умолчанию.
Параметры:
start - начальная точка градиента в пространстве пользователя
end - конечная точка градиента в пространстве пользователя
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, используемый для генерации линейного цветового градиента. См. specification метода в интерфейсе Paint для получения информации по обработке нулевых параметров.
Parameters:
cm - предпочтительный ColorModel, представляющий наиболее удобный для вызывающей стороны формат для получения пиксельных данных, или null если предпочтений нет.
deviceBounds - ограничивающая прямоугольная область графического примитива, отрисовываемого в пространстве устройства.
userBounds - ограничивающая прямоугольная область графического примитива, отрисовываемого в пользовательском пространстве.
transform - AffineTransform из пользовательского пространства в пространство устройства.
hints - набор подсказок, которые объект контекста может использовать для выбора между вариантами отрисовки.
Returns:
PaintContext для генерации цветовых узоров.
See Also:
  • Paint
  • PaintContext
  • ColorModel
  • Rectangle
  • Rectangle2D
  • AffineTransform
  • RenderingHints

getStartPoint

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

getEndPoint

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

© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/LinearGradientPaint.html

Spec-Zone.ru

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