Spec-Zone.ru › OpenJDK 25

Класс 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 defaults.
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

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

AbstractRegionPainter

protected AbstractRegionPainter()
Создает новый 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)
Получает любые дополнительные атрибуты, которые реализация средства рисования хочет включить в поиск в кэше изображений. Проверка выполняется при каждом вызове метода 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)
Непосредственно выполняет операцию рисования. Подклассы должны реализовать этот метод. Переданный графический объект может представлять фактическую поверхность, на которую выполняется отрисовка, или промежуточный буфер. Кроме того, к нему уже применено преобразование координат. Просто отрисуйте компонент так, как если бы он находился в точке 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 defaults.
Параметры:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/plaf/nimbus/AbstractRegionPainter.html

Spec-Zone.ru

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