Класс 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 должен рисовать. Более конкретно, указанная ширина и высота указывают рисовальщику, что он должен рисовать полностью в пределах этой ширины и высоты. Любой указанный обрез (clip) в параметре g дополнительно ограничит область.
Например, предположим, что у меня есть реализация Painter, которая рисует градиент. Градиент переходит от белого к черному. Он «растягивается», чтобы заполнить область рисования. Таким образом, если я использую этот Painter для рисования области 500x500, самый левый край будет чёрным, самый правый — белым, а между ними будет нарисован плавный градиент. Я могу затем, без модификаций, использовать Painter для рисования области размером 20x20. Эта область также будет чёрной слева, белой справа, и между ними будет нарисован плавный градиент.
- Определено:
-
paintв интерфейсеPainter<JComponent> - Параметры:
-
g- Графический контекст для рисования. Он не должен быть 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 - Возвращает:
- Полученный цвет, значение цвета которого изменится, если изменится родительский цвет 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равен null или массив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равен null или массив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, 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/javax/swing/plaf/nimbus/AbstractRegionPainter.html