Класс AbstractRegionPainter
- Все реализуемые интерфейсы:
Painter<JComponent>
public abstract class AbstractRegionPainter extends Object implements Painter<JComponent>
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
protected static class |
AbstractRegionPainter.PaintContext |
Класс, инкапсулирующий состояние, полезное при отрисовке. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создать новый AbstractRegionPainter |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
configureGraphics |
Настраивает предоставленный Graphics2D. |
protected final float |
decodeAnchorX |
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное положение точки привязки, исходя из закодированного значения X контрольной точки и расстояния смещения от контрольной точки до точки привязки. |
protected final float |
decodeAnchorY |
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное положение точки привязки, исходя из закодированного значения Y контрольной точки и расстояния смещения от контрольной точки до точки привязки. |
protected final Color |
decodeColor |
Декодирует и возвращает цвет, полученный из смещения между двумя другими цветами. |
protected final Color |
decodeColor |
Декодирует и возвращает цвет, полученный из базового цвета по умолчанию UI. |
protected final LinearGradientPaint |
decodeGradient |
Исходя из параметров для создания LinearGradientPaint, этот метод создаст и вернет линейный градиент. |
protected final RadialGradientPaint |
decodeRadialGradient |
Исходя из параметров для создания RadialGradientPaint, этот метод создаст и вернет радиальный градиент. |
protected final float |
decodeX |
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное расположение для данного закодированного значения X. |
protected final float |
decodeY |
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное расположение для данного закодированного значения y. |
protected abstract void |
doPaint |
Фактически выполняет операцию отрисовки. |
protected final Color |
getComponentColor |
Получает свойство цвета из данного JComponent. |
protected Object[] |
getExtendedCacheKeys |
Получает дополнительные атрибуты, которые реализация художника может включить в запросы к кэшу изображений. |
protected abstract AbstractRegionPainter.PaintContext |
getPaintContext() |
Получает PaintContext для этой операции отрисовки. |
final void |
paint |
Отрисовывает в предоставленный объект Graphics2D. |
Подробное описание конструкторов
AbstractRegionPainter
protected AbstractRegionPainter()
Подробное описание методов
paint
public final void paint(Graphics2D g, JComponent c, int w, int h)
Отображает на заданный объект Graphics2D. Реализации этого метода могут изменять состояние объекта Graphics2D, и не обязаны восстанавливать это состояние по завершении. В большинстве случаев рекомендуется, чтобы вызывающий метод передавал объект графики для временного использования. Объект Graphics2D не должен быть null.
Состояние объекта графики может быть учтено методом paint, но не обязательно. Например, установка подсказки рендеринга сглаживания на графике может или не может быть учтена реализацией Painter.
Переданный параметр объекта служит необязательным параметром конфигурации. Например, он может быть типа Component. Реализация Painter, которая ожидает его, может затем считать состояние из этого Component и использовать это состояние для рисования. Например, реализация может считать значение backgroundColor и использовать его.
В целом, для повышения повторного использования большинство стандартных Painter игнорируют этот параметр. Таким образом, они могут быть повторно использованы в любом контексте. Параметр object может быть null. Реализации не должны генерировать исключение NullPointerException, если параметр объекта равен null.
Наконец, аргументы width и height задают ширину и высоту, в которые Painter должен выполнить рисование. Более конкретно, указанная ширина и высота инструктируют рисовальщик, что он должен рисовать полностью в пределах этой ширины и высоты. Любой заданный обрез в параметре g дополнительно ограничит область.
Например, предположим, что у меня есть реализация Painter, которая рисует градиент. Градиент переходит от белого к черному. Он «растягивается», чтобы заполнить область рисования. Таким образом, если я использую этот Painter для рисования области 500x500, крайний левый будет черным, крайний правый — белым, и между ними будет нарисован плавный градиент. Я могу затем, без модификаций, повторно использовать этот Painter для рисования области размером 20x20. Эта область также будет черной слева, белой справа, и между ними будет нарисован плавный градиент.
- Определено в:
-
paintв интерфейсеPainter<JComponent> - Параметры:
-
g- Объект Graphics2D для рисования. Не должен быть null. -
c- необязательный параметр конфигурации. Может быть null. -
w- ширина области для рисования. -
h- высота области для рисования.
getExtendedCacheKeys
protected Object[] getExtendedCacheKeys(JComponent c)
- Параметры:
-
c- Компонент в текущем вызове paint - Возвращает:
- Массив дополнительных объектов для включения в ключ кэша
getPaintContext
protected abstract AbstractRegionPainter.PaintContext getPaintContext()
Получает PaintContext для этой операции рисования. Этот метод вызывается при каждом рисовании, поэтому должен быть быстрым и не генерировать мусор. PaintContext содержит информацию, такую как подсказки кэша. Он также содержит данные, необходимые для декодирования точек во время выполнения, такие как отступы растяжения, размер холста, на котором были определены закодированные точки, и инвертированы ли отступы растяжения.
Этот метод позволяет подклассам упаковать рисование различных состояний с, возможно, различными размерами холста и т. д. в одну реализацию AbstractRegionPainter.
- Возвращает:
- PaintContext, связанный с этой операцией рисования.
configureGraphics
protected void configureGraphics(Graphics2D g)
Конфигурирует заданный Graphics2D. Часто параметры рендеринга или правила композиции применяются к объекту Graphics2D перед рисованием, что должно повлиять на все последующие операции рисования. Этот метод предоставляет удобный крючок для конфигурации объекта Graphics перед рендерингом, независимо от того, выполняется ли операция рендеринга в промежуточном буфере или непосредственно на дисплее.
- Параметры:
-
g- Объект Graphics2D для конфигурации. Не будет null.
doPaint
protected abstract void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys)
width и высоту height. По соображениям производительности вы можете прочитать обрезку из объекта Graphics2D и выполнить рисование только в этой области.- Параметры:
-
g- Поверхность Graphics2D для рисования -
c- JComponent, связанный с событием рисования. Например, если область, которая рисуется, это Button, тоcбудет JButton. Если область, которая рисуется, это ScrollBarSlider, то компонент будет JScrollBar. Это значение может быть null. -
width- Ширина области для рисования. Обратите внимание, что в случае рисования переднего плана это значение может отличаться от c.getWidth(). -
height- Высота области для рисования. Обратите внимание, что в случае рисования переднего плана это значение может отличаться от c.getHeight(). -
extendedCacheKeys- Результат вызова getExtendedCacheKeys()
decodeX
protected final float decodeX(float x)
- Параметры:
-
x- закодированное значение x (0...1, или 1...2, или 2...3) - Возвращает:
- декодированное значение x
- Исключение:
-
IllegalArgumentException- еслиx < 0илиx > 3
decodeY
protected final float decodeY(float y)
- Параметры:
-
y- закодированное значение y (0...1, или 1...2, или 2...3) - Возвращает:
- декодированное значение y
- Исключение:
-
IllegalArgumentException- еслиy < 0илиy > 3
decodeAnchorX
protected final float decodeAnchorX(float x, float dx)
- Параметры:
-
x- закодированное значение x контрольной точки Безье (0...1, или 1...2, или 2...3) -
dx- смещение расстояния от якоря до контрольной точки по оси x - Возвращает:
- декодированное значение x положения контрольной точки
- Исключение:
-
IllegalArgumentException- еслиx < 0илиx > 3
decodeAnchorY
protected final float decodeAnchorY(float y, float dy)
- Параметры:
-
y- закодированное значение y контрольной точки Безье (0...1, или 1...2, или 2...3) -
dy- смещение расстояния от якоря до контрольной точки по оси y - Возвращает:
- декодированное значение y позиции контрольной точки
- Исключение:
-
IllegalArgumentException- еслиy < 0илиy > 3
decodeColor
protected final Color decodeColor(String key, float hOffset, float sOffset, float bOffset, int aOffset)
- Параметры:
-
key- Ключ, соответствующий значению в таблице UI Defaults UIManager, где определен базовый цвет -
hOffset- Смещение оттенка, используемое для вывода. -
sOffset- Смещение насыщенности, используемое для вывода. -
bOffset- Смещение яркости, используемое для вывода. -
aOffset- Смещение альфа-канала, используемое для вывода. Значение от 0 до 255 - Возвращает:
- Выведенный цвет, значение цвета которого изменится, если изменится базовый цвет родительских настроек пользовательского интерфейса.
decodeColor
protected final Color decodeColor(Color color1, Color color2, float midPoint)
- Параметры:
-
color1- Первый цвет -
color2- Второй цвет -
midPoint- Смещение между цветом 1 и цветом 2. Значение 0.0 соответствует цвету 1, а 1.0 — цвету 2; - Возвращает:
- Выведенный цвет
decodeGradient
protected final LinearGradientPaint decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
- Параметры:
-
x1- x1 -
y1- y1 -
x2- x2 -
y2- y2 -
midpoints- средние точки -
colors- цвета - Возвращает:
- допустимый LinearGradientPaint. Этот метод никогда не возвращает null.
- Исключение:
-
NullPointerException- если массивmidpointsили массивcolorsравен null, -
IllegalArgumentException- если начальная и конечная точки совпадают, илиmidpoints.length != colors.length, или размер массиваcolorsменьше 2, или значениеmidpointsменьше 0,0 или больше 1,0, или значенияmidpointsне заданы в строго возрастающем порядке
decodeRadialGradient
protected final RadialGradientPaint decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors)
- Параметры:
-
x- координата x -
y- координата y -
r- радиус -
midpoints- средние точки -
colors- цвета - Возвращает:
- допустимый RadialGradientPaint. Этот метод никогда не возвращает null.
- Исключение:
-
NullPointerException- если массивmidpointsили массивcolorsравен null -
IllegalArgumentException- еслиrне положителен, илиmidpoints.length != colors.length, или размер массиваcolorsменьше 2, или значениеmidpointsменьше 0,0 или больше 1,0, или значенияmidpointsне заданы в строго возрастающем порядке
getComponentColor
protected final Color getComponentColor(JComponent c, String property, Color defaultColor, float saturationOffset, float brightnessOffset, int alphaOffset)
getXXX(), а если он не срабатывает, проверяется свойство клиента с ключом property. Если ни один из вариантов не возвращает цвет, возвращается defaultColor.- Параметры:
-
c- компонент для получения свойства цвета -
property- имя свойства в стиле бин или свойства клиента -
defaultColor- цвет, который нужно вернуть, если цвет не был получен из компонента. -
saturationOffset- добавляет модификатор к компоненту насыщенности HSB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию). -
brightnessOffset- добавляет модификатор к компоненту яркости HSB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию). -
alphaOffset- добавляет модификатор к компоненту альфа-канала ARGB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию). - Возвращает:
- Цвет, полученный из компонента, или defaultColor
© 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/javax/swing/plaf/nimbus/AbstractRegionPainter.html