Класс 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 |
Получить любые дополнительные атрибуты, которые реализация painter'а хотела бы включить в запросы к кешу изображений. |
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. A Painter, ожидавший его, мог бы затем прочитать состояние из этого Component и использовать это состояние для рисования. Например, реализация может прочитать backgroundColor и использовать его.
В целом, для повышения повторного использования большинство стандартных Painter игнорируют этот параметр. Таким образом, они могут быть повторно использованы в любом контексте. Объект object может быть null. Реализации не должны выбрасывать NullPointerException, если параметр объекта равен null.
Наконец, параметры width и height задают ширину и высоту, в которые Painter должен рисовать. Более конкретно, указанная ширина и высота указывают рисовальщику, что он должен рисовать полностью в пределах этой ширины и высоты. Любой указанный обрез на параметре g дополнительно ограничит область.
Например, предположим, что у меня есть реализация Painter, которая рисует градиент. Градиент переходит от белого к черному. Он "растягивается", чтобы заполнить область рисования. Таким образом, если я использую этот Painter для рисования области 500x500, то самый левый край будет черным, самый правый - белым, и между ними будет нарисован плавный градиент. Я могу затем, без изменений, повторно использовать Painter для рисования области размером 20x20. Эта область также будет черной слева, белой справа, и между ними будет нарисован плавный градиент.
- Specified by:
-
paintв интерфейсеPainter<JComponent> - Параметры:
-
g- Объект Graphics2D для рисования. Он не должен быть null. -
c- необязательный параметр конфигурации. Может быть null. -
w- ширина области для рисования. -
h- высота области для рисования.
getExtendedCacheKeys
protected Object[] getExtendedCacheKeys(JComponent c)
- Параметры:
-
c- Компонент в текущем вызове рисования - Возвращает:
- Массив дополнительных объектов, которые следует включить в ключ кеша
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, связанный с событием рисования. Например, если область, которая рисуется, является кнопкой, тоcбудет JButton. Если область, которая рисуется, является ползунком полосы прокрутки, то компонент будет 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 - Возвращает:
- Выведенный цвет, значение цвета которого изменится, если изменится родительский цвет uiDefault.
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- Имя свойства в стиле bean или пользовательского свойства -
defaultColor- Цвет, который должен быть возвращён, если цвет не был получен из компонента. -
saturationOffset- Дополнительно изменяет компонент насыщенности HSB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию). -
brightnessOffset- Дополнительно изменяет компонент яркости HSB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию). -
alphaOffset- Дополнительно изменяет компонент альфа-канала ARGB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию). - Возвращает:
- Цвет, полученный из компонента, или defaultColor
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/plaf/nimbus/AbstractRegionPainter.html