Spec-Zone.ru › OpenJDK 17

Класс 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 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(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)
Возвращает SynthPainter, который будет использован для рисования.
void installDefaults(SynthContext ctx)
Устанавливает необходимое состояние из этого стиля на JComponent из context.
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 - SynthContext, определяющий запрос
key - не должно быть null
Возвращает:
Значение указанного свойства

getBackgroundPainter

public Painter<Object> getBackgroundPainter(SynthContext ctx)
Возвращает соответствующего рисовальщика фона, если он есть, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
Параметры:
ctx - SynthContext. Не должно быть null.
Возвращает:
Рисовальщик фона, соответствующий данному состоянию, или null, если не найдено.

getForegroundPainter

public Painter<Object> getForegroundPainter(SynthContext ctx)
Возвращает соответствующего рисовальщика переднего плана, если он есть, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
Параметры:
ctx - SynthContext. Не должно быть null.
Возвращает:
Рисовальщик переднего плана, соответствующий данному состоянию, или null, если не найдено.

getBorderPainter

public Painter<Object> getBorderPainter(SynthContext ctx)
Возвращает соответствующего рисовальщика границы, если он есть, для состояния, указанного в данном SynthContext. Этот метод выполняет соответствующий поиск по умолчанию, как описано в #get.
Параметры:
ctx - SynthContext. Не должно быть null.
Возвращает:
Рисовальщик границы, соответствующий данному состоянию, или null, если не найдено.

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/plaf/nimbus/NimbusStyle.html

Spec-Zone.ru

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