Класс 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 |
Декодирует и возвращает значение типа float, представляющее фактическое положение точки привязки в пикселях, с учетом закодированного значения X контрольной точки и расстояния смещения от этой контрольной точки до точки привязки. |
protected final float |
decodeAnchorY |
Декодирует и возвращает значение типа float, представляющее фактическое положение точки привязки в пикселях, с учетом закодированного значения Y контрольной точки и расстояния смещения от этой контрольной точки до точки привязки. |
protected final Color |
decodeColor |
Декодирует и возвращает цвет, полученный путем смещения между двумя другими цветами. |
protected final Color |
decodeColor |
Декодирует и возвращает цвет, полученный на основе базового цвета из UI defaults. |
protected final LinearGradientPaint |
decodeGradient |
Создает и возвращает линейную градиентную заливку на основе параметров для создания LinearGradientPaint. |
protected final RadialGradientPaint |
decodeRadialGradient |
Создает и возвращает радиальную градиентную заливку на основе параметров для создания RadialGradientPaint. |
protected final float |
decodeX |
Декодирует и возвращает значение типа float, представляющее фактическое положение в пикселях для указанного закодированного значения X. |
protected final float |
decodeY |
Декодирует и возвращает значение типа float, представляющее фактическое положение в пикселях для указанного закодированного значения 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.
Передаваемый параметр object служит необязательным аргументом конфигурации. Например, он может иметь тип Component. Тогда Painter, которому это необходимо, может получить состояние из этого Component и использовать его при рисовании. Например, реализация может прочитать backgroundColor и использовать его.
Как правило, для повышения возможности повторного использования большинство стандартных Painter игнорируют этот параметр. Поэтому их можно использовать повторно в любом контексте. Значение object может быть null. Реализации не должны выбрасывать NullPointerException, если параметр object равен null.
Наконец, аргументы width и height задают ширину и высоту области, в которой Painter должен выполнять рисование. Точнее, указанные ширина и высота определяют область, внутри которой средство рисования должно полностью выполнить отрисовку. Любая заданная область отсечения параметра g дополнительно ограничивает эту область.
Например, предположим, что у меня есть реализация Painter, которая рисует градиент от белого к черному. Градиент «растягивается» на всю отрисовываемую область. Таким образом, если использовать этот Painter для отрисовки области размером 500 x 500, левый край будет черным, правый — белым, а между ними будет плавный градиент. Затем я могу без изменений повторно использовать Painter для отрисовки области размером 20x20. Эта область также будет черной слева, белой справа, а между ними будет плавный градиент.
- Переопределяет:
-
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, связанный с событием рисования. Например, если отрисовываемая область — 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. Если и в этом случае не удается получить Color, возвращается defaultColor.- Параметры:
-
c— компонент, из которого получают свойство цвета -
property— имя свойства в стиле bean или клиентского свойства -
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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/plaf/nimbus/AbstractRegionPainter.html