Класс NimbusStyle
public final class NimbusStyle extends SynthStyle
Реализация SynthStyle, используемая Nimbus. Для каждой области Region, зарегистрированной в NimbusLookAndFeel, будет создан соответствующий NimbusStyle. Поэтому сторонние компоненты, зарегистрированные в NimbusLookAndFeel, получат NimbusStyle от данного оформления через метод #getStyle(JComponent, Region).
Этот класс корректно считывает и извлекает значения из UIDefaults в соответствии со стандартными соглашениями об именовании Nimbus. Он создает и извлекает хранящиеся там объекты Painter, шрифты, цвета и другие данные.
NimbusStyle также поддерживает возможность переопределения настроек для отдельных компонентов. NimbusStyle проверяет карту клиентских свойств компонента на наличие "Nimbus.Overrides". Если значение, связанное с этим ключом, является экземпляром UIDefaults, значения из этой таблицы настроек переопределяют стандартные настройки Nimbus в UIManager, но только для данного экземпляра компонента.
При необходимости можно задать клиентское свойство "Nimbus.Overrides.InheritDefaults". Если оно имеет значение true, это клиентское свойство указывает, что сначала следует прочитать настройки из UIManager, а затем заменить их настройками из клиентских свойств компонента. Если значение равно false, будут использоваться только настройки из карты клиентских свойств компонента. Если свойство не задано, предполагается значение true.
Чтобы "Nimbus.Overrides.InheritDefaults" имело какой-либо эффект, необходимо задать "Nimbus.Overrides". "Nimbus.Overrides" указывает, имеются ли переопределения, а "Nimbus.Overrides.InheritDefaults" — следует ли сначала инициализировать эти переопределения настройками из UIManager.
NimbusStyle перезагружается при возникновении события изменения свойства компонента для "Nimbus.Overrides" или "Nimbus.Overrides.InheritDefaults". Например, установка нового UIDefaults для компонента приведет к перезагрузке стиля.
Значения считываются из UIManager только один раз, после чего кэшируются. Если необходимо повторно прочитать значения (например, при перезагрузке пользовательского интерфейса), следует отбросить этот NimbusStyle и получить новый из NimbusLookAndFeel с помощью NimbusLookAndFeel.getStyle.
Основной интерес для авторов сторонних компонентов в этом классе представляют три метода, возвращающие объекты Painter: #getBackgroundPainter, #getForegroundPainter и #getBorderPainter.
NimbusStyle позволяет задавать пользовательские состояния или изменять порядок состояний. В Synth (а значит, и в Nimbus) используется понятие «состояние». Например, JButton может находиться в состоянии "MOUSE_OVER", "ENABLED" или "DISABLED". Это стандартные состояния, определенные в Synth и применимые ко всем областям Synth.
Однако иногда необходимо пользовательское состояние. Например, можно задать для JButton отличающийся способ отрисовки, если его родительский компонент — JToolbar. В Nimbus такие пользовательские состояния задаются специальным ключом в UIDefaults. Следующие записи UIDefaults определяют для этой кнопки три состояния:
JButton.States = Enabled, Disabled, Toolbar
JButton[Enabled].backgroundPainter = somePainter
JButton[Disabled].background = BLUE
JButton[Toolbar].backgroundPainter = someOtherPaint
Как видно, запись JButton.States перечисляет состояния, поддерживаемые стилем JButton. Затем задаются настройки для каждого состояния. Если запись JButton.States не указана, будут использоваться стандартные состояния Synth. Если запись указана, но список состояний пуст или равен null, будут использоваться стандартные состояния Synth.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
LARGE_KEY |
Большой ключ |
static final double |
LARGE_SCALE |
Большой масштаб |
static final String |
MINI_KEY |
Миниатюрный ключ |
static final double |
MINI_SCALE |
Миниатюрный масштаб |
static final String |
SMALL_KEY |
Малый ключ |
static final double |
SMALL_SCALE |
Малый масштаб |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
get |
Получение свойства стиля, специфичного для области. |
Painter |
getBackgroundPainter |
Возвращает соответствующий фоновый Painter, если он есть, для состояния, указанного в переданном SynthContext. |
Painter |
getBorderPainter |
Возвращает соответствующий Painter границы, если он есть, для состояния, указанного в переданном SynthContext. |
protected Color |
getColorForState |
Возвращает цвет для указанного состояния. |
protected Font |
getFontForState |
Возвращает шрифт для указанного состояния. |
Painter |
getForegroundPainter |
Возвращает соответствующий Painter переднего плана, если он есть, для состояния, указанного в переданном SynthContext. |
Insets |
getInsets |
Возвращает Insets, используемые для вычисления размеров. |
SynthPainter |
getPainter |
Возвращает SynthPainter, который будет использоваться для отрисовки. |
void |
installDefaults |
Устанавливает необходимое состояние из этого Style для JComponent из context. |
boolean |
isOpaque |
Возвращает true, если область непрозрачна. |
Методы, объявленные в классе SynthStyle
getBoolean, getColor, getFont, getGraphicsUtils, getIcon, getInt, getString, uninstallDefaults | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
getBoolean |
Вспомогательный метод для получения конкретного свойства стиля, значение которого имеет тип Boolean. |
Color |
getColor |
Возвращает цвет для указанного состояния. |
Font |
getFont |
Возвращает Font для указанного состояния. |
SynthGraphicsUtils |
getGraphicsUtils |
Возвращает SynthGraphicUtils для указанного контекста. |
Icon |
getIcon |
Вспомогательный метод для получения конкретного свойства стиля, значение которого имеет тип Icon. |
int |
getInt |
Вспомогательный метод для получения конкретного свойства стиля, значение которого имеет тип Number. |
String |
getString |
Вспомогательный метод для получения конкретного свойства стиля, значение которого имеет тип String. |
void |
uninstallDefaults |
Удаляет все состояния, установленные этим стилем для JComponent из context. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
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 |
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Приостанавливает выполнение текущего потока до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Подробное описание полей
LARGE_KEY
public static final String LARGE_KEY
- См. также:
SMALL_KEY
public static final String SMALL_KEY
- См. также:
MINI_KEY
public static final String MINI_KEY
- См. также:
LARGE_SCALE
public static final double LARGE_SCALE
- См. также:
SMALL_SCALE
public static final double SMALL_SCALE
- См. также:
MINI_SCALE
public static final double MINI_SCALE
- См. также:
Подробное описание методов
installDefaults
public void installDefaults(SynthContext ctx)
JComponent из context. Переопределен, чтобы при необходимости заполнять этот стиль данными из UIDefaults.- Переопределяет:
-
installDefaultsв классеSynthStyle - Параметры:
-
ctx— SynthContext, определяющий компонент, для которого устанавливаются свойства.
getInsets
public Insets getInsets(SynthContext ctx, Insets in)
- Переопределяет:
-
getInsetsв классеSynthStyle - Параметры:
-
ctx— SynthContext, определяющий запросивший компонент -
in— Insets, в который помещается возвращаемое значение. - Возвращает:
- Insets для размеров.
getColorForState
protected Color getColorForState(SynthContext ctx, ColorType type)
JComponent. Переопределен, чтобы при необходимости заполнять этот стиль данными из UIDefaults.
Кроме того, NimbusStyle обрабатывает ColorTypes немного иначе, чем Synth.
- ColorType.BACKGROUND соответствует цвету, хранящемуся в UIDefaults под именем "background".
- ColorType.TEXT_BACKGROUND соответствует цвету, хранящемуся в UIDefaults под именем "textBackground".
- ColorType.FOREGROUND соответствует цвету, хранящемуся в UIDefaults под именем "textForeground".
- ColorType.TEXT_FOREGROUND соответствует цвету, хранящемуся в UIDefaults под именем "textForeground".
- Определен в:
-
getColorForStateв классеSynthStyle - Параметры:
-
ctx— SynthContext, определяющий запросивший компонент -
type— тип запрашиваемого цвета. - Возвращает:
- Цвет для отрисовки
getFontForState
protected Font getFontForState(SynthContext ctx)
JComponent. Переопределен, чтобы при необходимости заполнять этот стиль данными из UIDefaults. Если в UIDefaults не найдено значение с именем "font", вместо него будет возвращен шрифт "defaultFont" из UIDefaults.- Определен в:
-
getFontForStateв классеSynthStyle - Параметры:
-
ctx— SynthContext, определяющий запросивший компонент - Возвращает:
- Шрифт для отрисовки
getPainter
public SynthPainter getPainter(SynthContext ctx)
SynthPainter, который будет использоваться для отрисовки. Может вернуть null. Возвращает SynthPainter для этого стиля, который делегирует вызовы объектам Painter, установленным в этом стиле.- Переопределяет:
-
getPainterв классеSynthStyle - Параметры:
-
ctx— SynthContext, определяющий запросивший компонент - Возвращает:
- SynthPainter для использования
isOpaque
public boolean isOpaque(SynthContext ctx)
- Переопределяет:
-
isOpaqueв классеSynthStyle - Параметры:
-
ctx— SynthContext, определяющий запросивший компонент - Возвращает:
- true, если область непрозрачна.
get
public Object get(SynthContext ctx, Object key)
Переопределен, чтобы при необходимости заполнять этот стиль данными из UIDefaults.
Свойства в UIDefaults могут быть заданы цепочкой. Например:
background Button.opacity Button.Enabled.foreground Button.Enabled+Selected.background
В этом примере предположим, что вы находитесь в состоянии Enabled+Selected и ищете "foreground". Сначала проверяется Button.Enabled+Selected.foreground, но такого цвета нет. Затем выполняется поиск в следующем подходящем состоянии — в данном случае Button.Enabled.foreground, где значение найдено. Поэтому возвращается оно.
Если же мы находимся в состоянии Enabled и ищем "background", значение не будет найдено ни в Button.Enabled, ни в Button, но будет найдено на верхнем уровне в UIManager. Поэтому возвращается это значение.
Особое примечание: переданный этому методу "key" может иметь вид "background" или "Button.background", где "Button" соответствует префиксу, переданному конструктору NimbusStyle. В обоих случаях выполняется поиск "background".
- Переопределяет:
-
getв классеSynthStyle - Параметры:
-
ctx— SynthContext, определяющий запросивший компонент -
key— не должен быть равен null - Возвращает:
- Значение указанного свойства
getBackgroundPainter
public Painter<Object> getBackgroundPainter(SynthContext ctx)
- Параметры:
-
ctx— SynthContext. Не должен быть равен null. - Возвращает:
- Фоновый Painter, связанный с указанным состоянием, или null, если его не удалось найти.
getForegroundPainter
public Painter<Object> getForegroundPainter(SynthContext ctx)
- Параметры:
-
ctx— SynthContext. Не должен быть равен null. - Возвращает:
- Painter переднего плана, связанный с указанным состоянием, или null, если его не удалось найти.
getBorderPainter
public Painter<Object> getBorderPainter(SynthContext ctx)
- Параметры:
-
ctx— SynthContext. Не должен быть равен null. - Возвращает:
- Painter границы, связанный с указанным состоянием, или null, если его не удалось найти.
© 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.