Spec-Zone.ru › OpenJDK 24

Класс 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)
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное положение точки привязки, исходя из закодированного значения X контрольной точки и расстояния смещения от контрольной точки до точки привязки.
protected final float decodeAnchorY(float y, float dy)
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное положение точки привязки, исходя из закодированного значения 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)
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное расположение для данного закодированного значения X.
protected final float decodeY(float y)
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое пиксельное расположение для данного закодированного значения 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.

Методы, объявленные в классе java.lang.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.

Переданный параметр объекта служит необязательным параметром конфигурации. Например, он может быть типа Component. Реализация Painter, которая ожидает его, может затем считать состояние из этого Component и использовать это состояние для рисования. Например, реализация может считать значение backgroundColor и использовать его.

В целом, для повышения повторного использования большинство стандартных Painter игнорируют этот параметр. Таким образом, они могут быть повторно использованы в любом контексте. Параметр object может быть null. Реализации не должны генерировать исключение NullPointerException, если параметр объекта равен null.

Наконец, аргументы width и height задают ширину и высоту, в которые Painter должен выполнить рисование. Более конкретно, указанная ширина и высота инструктируют рисовальщик, что он должен рисовать полностью в пределах этой ширины и высоты. Любой заданный обрез в параметре g дополнительно ограничит область.

Например, предположим, что у меня есть реализация Painter, которая рисует градиент. Градиент переходит от белого к черному. Он «растягивается», чтобы заполнить область рисования. Таким образом, если я использую этот Painter для рисования области 500x500, крайний левый будет черным, крайний правый — белым, и между ними будет нарисован плавный градиент. Я могу затем, без модификаций, повторно использовать этот Painter для рисования области размером 20x20. Эта область также будет черной слева, белой справа, и между ними будет нарисован плавный градиент.

Определено в:
paint в интерфейсе Painter<JComponent>
Параметры:
g - Объект Graphics2D для рисования. Не должен быть null.
c - необязательный параметр конфигурации. Может быть null.
w - ширина области для рисования.
h - высота области для рисования.

getExtendedCacheKeys

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

decodeY

protected final float decodeY(float y)
Декодирует и возвращает значение с плавающей точкой, представляющее фактическое положение пикселя для заданного закодированного значения 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 - закодированное значение 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 - закодированное значение 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
Возвращает:
Выведенный цвет, значение цвета которого изменится, если изменится базовый цвет родительских настроек пользовательского интерфейса.

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 или массив 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 или массив 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. Если ни один из вариантов не возвращает цвет, возвращается defaultColor.
Параметры:
c - компонент для получения свойства цвета
property - имя свойства в стиле бин или свойства клиента
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/plaf/nimbus/AbstractRegionPainter.html

Spec-Zone.ru

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