Класс 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. Если вы укажете запись, но список состояний будет пустым или нулевым, то будут предполагаться стандартные состояния 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<Object> | getBackgroundPainter(SynthContext ctx) | Получение соответствующего отрисовщика фона, если он есть, для состояния, указанного в заданном SynthContext. |
Painter<Object> | getBorderPainter(SynthContext ctx) | Получение соответствующего отрисовщика рамки, если он есть, для состояния, указанного в заданном SynthContext. |
protected Color | getColorForState(SynthContext ctx,
ColorType type) | Возвращает цвет для указанного состояния. |
protected Font | getFontForState(SynthContext ctx) | Возвращает шрифт для указанного состояния. |
Painter<Object> | 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, если необходимо.
- Overrides:
-
installDefaultsв классеSynthStyle - Параметры:
-
ctx- SynthContext, определяющий компонент для установки свойств.
getInsets
public Insets getInsets(SynthContext ctx,
Insets in) Возвращает отступы, используемые для расчета размеров. Переопределено для заполнения этого стиля данными из UIDefaults, если необходимо.
- Overrides:
-
getInsetsв классеSynthStyle - Параметры:
-
ctx- SynthContext, определяющий запросчик -
in- Отступы для размещения возвращаемого значения. - Возвращает:
- Отступы размеров.
getColorForState
protected Color getColorForState(SynthContext ctx,
ColorType type) Возвращает цвет для указанного состояния. Не следует вызывать методы на JComponent.
Переопределено для заполнения этого стиля данными из UIDefaults, если необходимо.
Кроме того, NimbusStyle обрабатывает ColorType несколько иначе, чем 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 для этого стиля, который делегирует работу установленным в этом стиле Painters.
- Overrides:
-
getPainterв классеSynthStyle - Параметры:
-
ctx- SynthContext, определяющий запросчик - Возвращает:
- Используемый SynthPainter
isOpaque
public boolean isOpaque(SynthContext ctx)
Возвращает true, если область непрозрачна. Переопределено для заполнения этого стиля данными из UIDefaults, если необходимо. Если непрозрачность не указана в UI-дефолтах, по умолчанию она непрозрачна.
- Overrides:
-
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".
- Overrides:
-
getв классеSynthStyle - Параметры:
-
ctx- SynthContext, определяющий запросчик -
key- не должно быть null - Возвращает:
- Значение именованного свойства
getBackgroundPainter
public Painter<Object> getBackgroundPainter(SynthContext ctx)
Получает соответствующий Painter фона, если он есть, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
- Параметры:
-
ctx- SynthContext. Не должно быть null. - Возвращает:
- Painter фона, связанный с данным состоянием, или null, если не был найден.
getForegroundPainter
public Painter<Object> getForegroundPainter(SynthContext ctx)
Получает соответствующий Painter переднего плана, если он есть, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
- Параметры:
-
ctx- SynthContext. Не должно быть null. - Возвращает:
- Painter переднего плана, связанный с данным состоянием, или null, если не был найден.
getBorderPainter
public Painter<Object> getBorderPainter(SynthContext ctx)
Получает соответствующий Painter рамки, если он есть, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
- Параметры:
-
ctx- SynthContext. Не должно быть null. - Возвращает:
- Painter рамки, связанный с данным состоянием, или 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/plaf/nimbus/NimbusStyle.html