Класс NimbusStyle
- java.lang.Object
-
- javax.swing.plaf.synth.SynthStyle
-
- javax.swing.plaf.nimbus.NimbusStyle
public final class NimbusStyle extends SynthStyle
Реализация SynthStyle, используемая Nimbus. Каждый регион, зарегистрированный с NimbusLookAndFeel, будет иметь связанный NimbusStyle. Компоненты сторонних разработчиков, зарегистрированные с NimbusLookAndFeel, получат NimbusStyle из метода #getStyle(JComponent, Region).
Этот класс правильно считывает и извлекает значения, размещённые в UIDefaults в соответствии со стандартными соглашениями об именовании Nimbus. Он будет создавать и извлекать рисовальщики, шрифты, цвета и другие данные, хранящиеся там.
NimbusStyle также поддерживает возможность переопределения настроек для каждого компонента. NimbusStyle проверяет карту свойств клиента компонента на наличие "Nimbus.Overrides". Если значение, связанное с этим ключом, является экземпляром UIDefaults, то значения в этой таблице по умолчанию будут переопределять стандартные значения Nimbus по умолчанию в UIManager, но только для данного экземпляра компонента.
Необязательно, вы можете указать свойство клиента "Nimbus.Overrides.InheritDefaults". Если оно имеет значение true, это свойство клиента указывает, что значения по умолчанию, расположенные в UIManager, должны быть сначала прочитаны, а затем заменены значениями по умолчанию, расположенными в свойствах клиента компонента. Если false, то будут использованы только значения по умолчанию, расположенные в карте свойств клиента компонента. Если не указано, предполагается, что это true.
Вы должны указать "Nimbus.Overrides" для "Nimbus.Overrides.InheritDefaults", чтобы это имело какой-либо эффект. "Nimbus.Overrides" указывает, есть ли какие-либо переопределения, а "Nimbus.Overrides.InheritDefaults" указывает, должны ли эти переопределения быть инициализированы значениями по умолчанию из UIManager.
NimbusStyle перезагружается всякий раз, когда происходит событие изменения свойства компонента для "Nimbus.Overrides" или "Nimbus.Overrides.InheritDefaults". Например, установка новых UIDefaults для компонента приведет к перезагрузке стиля.
Значения считываются из UIManager только один раз и кэшируются. Если вам нужно прочитать значения снова (например, если пользовательский интерфейс перезагружается), то необходимо удалить этот NimbusStyle и прочитать новый из NimbusLookAndFeel с помощью NimbusLookAndFeel.getStyle.
Основной API, представляющий интерес для авторов компонентов сторонних разработчиков в этом классе, — это три метода, которые извлекают рисовальщиков: #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 String |
LARGE_KEY |
static double |
LARGE_SCALE |
static String |
MINI_KEY |
static double |
MINI_SCALE |
static String |
SMALL_KEY |
static double |
SMALL_SCALE |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Object |
get(SynthContext ctx,
Object key) Возвращает свойство стиля, специфичное для региона. |
Painter |
getBackgroundPainter(SynthContext ctx) Возвращает подходящий рисовальщик фона, если он есть, для состояния, указанного в данном SynthContext. |
Painter |
getBorderPainter(SynthContext ctx) Возвращает подходящий рисовальщик рамки, если он есть, для состояния, указанного в данном SynthContext. |
protected Color |
getColorForState(SynthContext ctx,
ColorType type) Возвращает цвет для указанного состояния. |
protected Font |
getFontForState(SynthContext ctx) Возвращает шрифт для указанного состояния. |
Painter |
getForegroundPainter(SynthContext ctx) Возвращает подходящий рисовальщик переднего плана, если он есть, для состояния, указанного в данном SynthContext. |
Insets |
getInsets(SynthContext ctx,
Insets in) Возвращает отступы, используемые для расчёта размеров. |
SynthPainter |
getPainter(SynthContext ctx) Возвращает |
void |
installDefaults(SynthContext ctx) Устанавливает необходимое состояние из этого стиля на |
boolean |
isOpaque(SynthContext ctx) Возвращает true, если регион непрозрачен. |
Методы, унаследованные от класса javax.swing.plaf.synth.SynthStyle
getBoolean, getColor, getFont, getGraphicsUtils, getIcon, getInt, getString, uninstallDefaults Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
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) Возвращает отступы, используемые для расчёта информации о размерах. Переопределено для заполнения этого стиля данными из UIDefaults, при необходимости.
- Переопределяет:
-
getInsetsв классеSynthStyle - Параметры:
-
ctx- SynthContext, определяющий запросчик -
in- Insets для помещения возвращаемого значения. - Возвращает:
- Отступы размеров.
getColorForState
protected Color getColorForState(SynthContext ctx,
ColorType type) Возвращает цвет для указанного состояния. Не следует вызывать методы JComponent.
Переопределено для заполнения этого стиля данными из UIDefaults, при необходимости.
Кроме того, NimbusStyle обрабатывает типы цветов немного иначе, чем 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, при необходимости. Если значение с именем "font" не найдено в UIDefaults, то возвращается шрифт "defaultFont" из UIDefaults.
- Определено в:
-
getFontForStateв классеSynthStyle - Параметры:
-
ctx- SynthContext, определяющий запросчика - Возвращает:
- Шрифт для отрисовки
getPainter
public SynthPainter getPainter(SynthContext ctx)
Возвращает SynthPainter, который будет использоваться для отрисовки. Может вернуть null. Возвращает SynthPainter для данного стиля, который делегирует работу установленным в этом стиле рисовальщикам.
- Переопределяет:
-
getPainterв классеSynthStyle - Параметры:
-
ctx- SynthContext, определяющий запросчика - Возвращает:
- SynthPainter для использования
isOpaque
public boolean isOpaque(SynthContext ctx)
Возвращает true, если область непрозрачна. Переопределено для заполнения этого стиля данными из UIDefaults, при необходимости. Если непрозрачность не указана в UI-дефолтах, то по умолчанию она не непрозрачна.
- Переопределяет:
-
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. Поэтому мы возвращаем это значение.
Важное замечание: "ключ", переданный в этот метод, может иметь вид "background" или "Button.background", где "Button" равно префиксу, переданному в конструктор NimbusStyle. В любом случае, он ищет "background".
- Переопределяет:
-
getв классеSynthStyle - Параметры:
-
ctx- -
key- не должно быть null - Возвращает:
- Значение указанного свойства
getBackgroundPainter
public Painter getBackgroundPainter(SynthContext ctx)
Получает соответствующий рисовальщик фона, если таковой имеется, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
- Параметры:
-
ctx- SynthContext. Не должно быть null. - Возвращает:
- Рисовальщик фона, связанный с заданным состоянием, или null, если не был найден.
getForegroundPainter
public Painter getForegroundPainter(SynthContext ctx)
Получает соответствующий рисовальщик переднего плана, если таковой имеется, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
- Параметры:
-
ctx- SynthContext. Не должно быть null. - Возвращает:
- Рисовальщик переднего плана, связанный с заданным состоянием, или null, если не был найден.
getBorderPainter
public Painter getBorderPainter(SynthContext ctx)
Получает соответствующий рисовальщик рамки, если таковой имеется, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
- Параметры:
-
ctx- SynthContext. Не должно быть null. - Возвращает:
- Рисовальщик рамки, связанный с заданным состоянием, или null, если не был найден.
© 1993, 2020, 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.