Spec-Zone.ru › OpenJDK 8

Класс 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)

Возвращает 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 -
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.

Spec-Zone.ru

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