Spec-Zone.ru › OpenJDK 25

Класс RadialGradientPaint

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

Пользователь должен указать круг, задающий градиентный рисунок, который определяется центральной точкой и радиусом. Также можно указать отдельную фокусную точку внутри этого круга, определяющую положение первого цвета градиента. По умолчанию фокус совпадает с центром круга.

Эта заливка сопоставляет первый цвет градиента с фокусной точкой, а последний — с окружностью круга, плавно интерполируя цвета, указанные пользователем между ними. Таким образом, любой отрезок, проведённый от фокусной точки до окружности, охватывает все цвета градиента.

Если указать фокусную точку за пределами радиуса круга, кольца градиентного рисунка будут центрированы в точке, расположенной непосредственно внутри края круга в направлении фокусной точки. При отрисовке вместо указанной фокусной точки будет использоваться это скорректированное положение.

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

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

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

Пользователь также может выбрать, какое действие объект RadialGradientPaint выполняет при заливке пространства за пределами радиуса круга, задав для CycleMethod значение REFLECTION или REPEAT. Пропорции цветов градиента одинаковы для любого отрезка, проведённого из фокусной точки. На следующем рисунке показано, что расстояние AB равно расстоянию BC, а расстояние AD равно расстоянию DE.

image showing the
distance AB=BC, and AD=DE

Если преобразования градиента и графической отрисовки равномерно масштабированы, а пользователь задаёт фокус, совпадающий с центром круга, пропорции цветов градиента одинаковы для любого отрезка, проведённого из центра. На следующем рисунке показаны расстояния AB, BC, AD и DE. Все они равны.

image showing the
distance of AB, BC, AD, and DE are all equal

Обратите внимание, что из-за дискретизации с точностью до пикселя могут возникать незначительные отклонения расстояний. Если метод циклирования не задан, по умолчанию будет выбран NO_CYCLE, то есть для заливки оставшейся области будет использоваться цвет последнего ключевого кадра.

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

В следующем коде показан типичный способ использования RadialGradientPaint, в котором центральная и фокусная точки совпадают:

    Point2D center = new Point2D.Float(50, 50);
    float radius = 25;
    float[] dist = {0.0f, 0.2f, 1.0f};
    Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
    RadialGradientPaint p =
        new RadialGradientPaint(center, radius, dist, colors);

На этом изображении показан пример кода выше с фокусом по умолчанию (в центре) для каждого из трёх методов циклирования:

image showing the
output of the sameple code

Также можно указать фокусную точку, не совпадающую с центром, как в следующем примере кода:

    Point2D center = new Point2D.Float(50, 50);
    float radius = 25;
    Point2D focus = new Point2D.Float(40, 40);
    float[] dist = {0.0f, 0.2f, 1.0f};
    Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
    RadialGradientPaint p =
        new RadialGradientPaint(center, radius, focus,
                                dist, colors,
                                CycleMethod.NO_CYCLE);

На этом изображении показан предыдущий пример кода с фокусом, не совпадающим с центром, для каждого из трёх методов циклирования:

image showing the
output of the sample code

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

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

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

MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod

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

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

BITMASK, OPAQUE, TRANSLUCENT

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

Конструктор Описание
RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors)
Создаёт RadialGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.
RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.
RadialGradientPaint(float cx, float cy, float radius, float fx, float fy, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию.
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors)
Создаёт RadialGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию.
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
Создаёт RadialGradientPaint.
RadialGradientPaint(Rectangle2D gradientBounds, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию.

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

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

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

getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency

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

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

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

RadialGradientPaint

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

RadialGradientPaint

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

RadialGradientPaint

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

RadialGradientPaint

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

RadialGradientPaint

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

RadialGradientPaint

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

RadialGradientPaint

@ConstructorProperties({"centerPoint","radius","focusPoint","fractions","colors","cycleMethod","colorSpace","transform"}) public RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
Создаёт RadialGradientPaint.
Параметры:
center — центральная точка круга, задающего градиент, в пользовательском пространстве. Последний цвет градиента сопоставляется с окружностью этого круга.
radius — радиус круга, задающего границы цветового градиента
focus — точка в пользовательском пространстве, с которой сопоставляется первый цвет
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 — если radius не является положительным числом, либо fractions.length != colors.length, либо размер colors меньше 2, либо значение fractions меньше 0.0 или больше 1.0, либо значения fractions не заданы в строго возрастающем порядке

RadialGradientPaint

public RadialGradientPaint(Rectangle2D gradientBounds, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию. Круг градиента объекта RadialGradientPaint определяется заданной ограничивающей рамкой.

Этот конструктор представляет собой более удобный способ записи следующего эквивалентного кода:

    double gw = gradientBounds.getWidth();
    double gh = gradientBounds.getHeight();
    double cx = gradientBounds.getCenterX();
    double cy = gradientBounds.getCenterY();
    Point2D center = new Point2D.Double(cx, cy);

    AffineTransform gradientTransform = new AffineTransform();
    gradientTransform.translate(cx, cy);
    gradientTransform.scale(gw / 2, gh / 2);
    gradientTransform.translate(-cx, -cy);

    RadialGradientPaint gp =
        new RadialGradientPaint(center, 1.0f, center,
                                fractions, colors,
                                cycleMethod,
                                ColorSpaceType.SRGB,
                                gradientTransform);
Параметры:
gradientBounds — ограничивающая рамка круга, задающего максимальную границу градиента, в пользовательском пространстве
fractions — числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента
colors — массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга.
cycleMethod — NO_CYCLE, REFLECT или REPEAT
Вызывает исключения:
NullPointerException — если gradientBounds равен null, массив fractions равен null, массив colors равен null или cycleMethod равен null
IllegalArgumentException — если gradientBounds пуст, либо 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 см. в описании метода createContext.
Параметры:
cm — предпочтительный ColorModel, представляющий наиболее удобный для вызывающего кода формат получения пиксельных данных, или null, если предпочтительный формат отсутствует.
deviceBounds — ограничивающая рамка графического примитива в пространстве устройства.
userBounds — ограничивающая рамка графического примитива в пользовательском пространстве.
transform — AffineTransform из пользовательского пространства в пространство устройства.
hints — набор подсказок, которые объект контекста может использовать для выбора способа отрисовки.
Возвращает:
объект PaintContext для создания цветовых рисунков.
См. также:
  • Paint
  • PaintContext
  • ColorModel
  • Rectangle
  • Rectangle2D
  • AffineTransform
  • RenderingHints

getCenterPoint

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

getFocusPoint

public Point2D getFocusPoint()
Возвращает копию фокусной точки радиального градиента. Обратите внимание: если фокусная точка, заданная при создании радиального градиента, находится за пределами радиуса круга, этот метод всё равно вернёт исходную фокусную точку, даже если при отрисовке кольца цвета могут быть центрированы в другой точке, расположенной внутри радиуса.
Возвращает:
объект Point2D, являющийся копией фокусной точки

getRadius

public float getRadius()
Возвращает радиус круга, задающего радиальный градиент.
Возвращает:
радиус круга, задающего радиальный градиент

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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/RadialGradientPaint.html

Spec-Zone.ru

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