Spec-Zone.ru › OpenJDK 27

Класс AbstractRegionPainter

java.lang.Object
javax.swing.plaf.nimbus.AbstractRegionPainter
Все реализуемые интерфейсы:
Painter<JComponent>
public abstract class AbstractRegionPainter extends Object implements Painter<JComponent>
Удобный базовый класс для определения экземпляров Painter, выполняющих отрисовку области или компонента в Nimbus.

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

Модификатор и тип Класс Описание
protected static class  AbstractRegionPainter.PaintContext
Класс, инкапсулирующий состояние, полезное при отрисовке.

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

AbstractRegionPainter()
Модификатор Конструктор Описание
protected
Создает новый AbstractRegionPainter

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

Модификатор и тип Метод Описание
protected void configureGraphics(Graphics2D g)
Настраивает указанный Graphics2D.
protected final float decodeAnchorX(float x, float dx)
Декодирует и возвращает значение типа float, представляющее фактическое положение точки привязки в пикселях, заданное закодированным значением X контрольной точки и расстоянием смещения от этой контрольной точки до точки привязки.
protected final float decodeAnchorY(float y, float dy)
Декодирует и возвращает значение типа float, представляющее фактическое положение точки привязки в пикселях, заданное закодированным значением Y контрольной точки и расстоянием смещения от этой контрольной точки до точки привязки.
protected final Color decodeColor(Color color1, Color color2, float midPoint)
Декодирует и возвращает цвет, полученный на основе смещения между двумя другими цветами.
protected final Color decodeColor(String key, float hOffset, float sOffset, float bOffset, int aOffset)
Декодирует и возвращает цвет, полученный на основе базового цвета из значений UI по умолчанию.
protected final LinearGradientPaint decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
На основании параметров для создания LinearGradientPaint этот метод создает и возвращает линейную градиентную заливку.
protected final RadialGradientPaint decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors)
На основании параметров для создания RadialGradientPaint этот метод создает и возвращает радиальную градиентную заливку.
protected final float decodeX(float x)
Декодирует и возвращает значение типа float, представляющее фактическое положение в пикселях для указанного закодированного значения X.
protected final float decodeY(float y)
Декодирует и возвращает значение типа float, представляющее фактическое положение в пикселях для указанного закодированного значения y.
protected abstract void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys)
Фактически выполняет операцию отрисовки.
protected final Color getComponentColor(JComponent c, String property, Color defaultColor, float saturationOffset, float brightnessOffset, int alphaOffset)
Получает свойство цвета из указанного JComponent.
protected Object[] getExtendedCacheKeys(JComponent c)
Получает любые дополнительные атрибуты, которые реализация средства отрисовки должна включать при поиске в кэше изображений.
protected abstract AbstractRegionPainter.PaintContext getPaintContext()
Получает PaintContext для этой операции отрисовки.
final void paint(Graphics2D g, JComponent c, int w, int h)
Выполняет отрисовку в указанный объект Graphics2D.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt либо по истечении определенного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt либо по истечении определенного времени.

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

AbstractRegionPainter

protected AbstractRegionPainter()
Создает новый AbstractRegionPainter

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

paint

public final void paint(Graphics2D g, JComponent c, int w, int h)

Выполняет отрисовку в указанный объект Graphics2D. Реализации этого метода могут изменять состояние объекта Graphics2D и не обязаны восстанавливать его по завершении работы. В большинстве случаев рекомендуется передавать вызывающим кодом временный объект graphics. Значение Graphics2D не должно быть равно null.

Состояние объекта graphics может учитываться методом paint, но это не гарантируется. Например, подсказка рендеринга сглаживания, заданная для graphics, может учитываться или не учитываться реализацией 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)
Получает любые дополнительные атрибуты, которые реализация средства отрисовки должна включать при поиске в кэше изображений. Проверка выполняется при каждом вызове метода paint(g, c, w, h).
Параметры:
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)
Фактически выполняет операцию отрисовки. Подклассы должны реализовать этот метод. Переданный объект graphics может представлять фактическую поверхность отрисовки или промежуточный буфер. Кроме того, для него уже было выполнено предварительное перемещение. Просто отрисуйте компонент так, как если бы он находился в точке 0, 0, имел ширину 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)
Декодирует и возвращает значение типа float, представляющее фактическое положение в пикселях для указанного закодированного значения X.
Параметры:
x — закодированное значение x (0...1, 1...2 или 2...3)
Возвращает:
декодированное значение x
Исключения:
IllegalArgumentException — если x < 0 или x > 3

decodeY

protected final float decodeY(float y)
Декодирует и возвращает значение типа 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)
Декодирует и возвращает значение типа float, представляющее фактическое положение точки привязки в пикселях, заданное закодированным значением X контрольной точки и расстоянием смещения от этой контрольной точки до точки привязки.
Параметры:
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)
Декодирует и возвращает значение типа float, представляющее фактическое положение точки привязки в пикселях, заданное закодированным значением Y контрольной точки и расстоянием смещения от этой контрольной точки до точки привязки.
Параметры:
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)
Декодирует и возвращает цвет, полученный на основе базового цвета из значений UI по умолчанию.
Параметры:
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)
На основании параметров для создания LinearGradientPaint этот метод создает и возвращает линейную градиентную заливку. Одна из основных целей метода — предотвратить создание LinearGradientPaint с совпадающими начальными и конечными точками. В этом случае координата y конечной точки немного увеличивается, чтобы избежать их совпадения.
Параметры:
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)
На основании параметров для создания RadialGradientPaint этот метод создает и возвращает радиальную градиентную заливку. Одна из основных целей метода — предотвратить создание RadialGradientPaint с неположительным радиусом. В этом случае радиус немного увеличивается, чтобы избежать нулевого значения.
Параметры:
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)
Получает свойство цвета из указанного JComponent. Сначала проверяется наличие метода getXXX(), а если это не удается — наличие свойства клиента с ключом property. Если и в этом случае не удается получить Color, возвращается defaultColor.
Параметры:
c — компонент, из которого нужно получить свойство цвета
property — имя свойства в стиле bean или свойства клиента
defaultColor — цвет, возвращаемый, если цвет не был получен из компонента.
saturationOffset — аддитивно изменяет компонент насыщенности HSB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию).
brightnessOffset — аддитивно изменяет компонент яркости HSB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию).
alphaOffset — аддитивно изменяет компонент альфа-канала ARGB возвращаемого цвета (игнорируется, если возвращается цвет по умолчанию).
Возвращает:
Цвет, полученный из компонента, или defaultColor

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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