Пакет javax.swing.plaf.synth
Synth — это настраиваемая тема оформления, в которой вся отрисовка делегируется. Synth не предоставляет стандартного внешнего вида. Для использования Synth необходимо указать файл, или предоставить файл, или предоставить SynthStyleFactory. Оба варианта конфигурации требуют понимания архитектуры synth, которая описана ниже, а также архитектуры Swing.
Если не указано иное, null не является допустимым значением для методов, определённых в пакете synth, и его передача приведёт к NullPointerException.
Synth
Каждая реализацияComponentUI в Synth связывается с одним SynthStyle на каждый Region, большинство Components имеют только один Region и, следовательно, только один SynthStyle. SynthStyle используется для доступа ко всем свойствам стиля: шрифты, цвета и другие Component свойства. Кроме того, SynthStyle используются для получения SynthPainter для отрисовки фона, рамки, фокуса и других частей Component. ComponentUI получают SynthStyle из SynthStyleFactory. SynthStyleFactory может быть предоставлен непосредственно с помощью SynthLookAndFeel.setStyleFactory(javax.swing.plaf.synth.SynthStyleFactory), или косвенно с помощью SynthLookAndFeel.load(java.io.InputStream, java.lang.Class<?>). Следующий пример использует метод SynthLookAndFeel.load() для конфигурации SynthLookAndFeel и устанавливает его в качестве текущей темы оформления: SynthLookAndFeel laf = new SynthLookAndFeel();
laf.load(MyClass.class.getResourceAsStream("laf.xml"), MyClass.class);
UIManager.setLookAndFeel(laf); Многие JComponent разбиваются на более мелкие части и идентифицируются перечислением с безопасным типом в Region. Например, JTabbedPane состоит из Region для JTabbedPane(Region.TABBED_PANE), области содержимого (Region.TABBED_PANE_CONTENT), области за вкладками (Region.TABBED_PANE_TAB_AREA) и самих вкладок (Region.TABBED_PANE_TAB). Каждый Region каждого JComponent будет иметь SynthStyle. Это позволяет настраивать отдельные части каждой области каждого JComponent.
Многие методы Synth принимают SynthContext. Он используется для предоставления информации о текущем Component и включает в себя: SynthStyle, связанный с текущей Region, состояние Component в виде битовой маски (см. SynthConstants для допустимых состояний) и Region, идентифицирующий часть Component, которая отрисовывается.
Вся отрисовка текста, выполняемая не-JTextComponent компонентами, делегируется SynthGraphicsUtils, который получается с помощью метода SynthStyle SynthStyle.getGraphicsUtils(javax.swing.plaf.synth.SynthContext). Вы можете настроить отрисовку текста, предоставив свой собственный SynthGraphicsUtils.
Примечания по конкретным компонентам
JTree
Synth предоставляет область для ячеек дерева:Region.TREE_CELL. Чтобы указать цвета рендерера, вам необходимо предоставить стиль для области TREE_CELL. Следующее иллюстрирует это: <style id="treeCellStyle">
<opaque value="TRUE"/>
<state>
<color value="WHITE" type="TEXT_FOREGROUND"/>
<color value="RED" type="TEXT_BACKGROUND"/>
</state>
<state value="SELECTED">
<color value="RED" type="TEXT_FOREGROUND"/>
<color value="WHITE" type="BACKGROUND"/>
</state>
</style>
<bind style="treeCellStyle" type="region" key="TreeCell"/> Это определяет комбинацию цветов — красный на белом при выделении и белый на красном при невыделении. Чтобы увидеть фон, необходимо указать, что метки не непрозрачны. Следующий фрагмент XML делает это:
<style id="labelStyle">
<opaque value="FALSE"/>
</style>
<bind style="labelStyle" type="region" key="Label"/> JList и JTable
Цвета, используемые рендерами для JList и JTable, задаются с помощью областей списка и таблицы. Следующий фрагмент XML иллюстрирует, как указать красный на белом при выделении и белый на красном при невыделении:<style id="style">
<opaque value="TRUE"/>
<state>
<color value="WHITE" type="TEXT_FOREGROUND"/>
<color value="RED" type="TEXT_BACKGROUND"/>
<color value="RED" type="BACKGROUND"/>
</state>
<state value="SELECTED">
<color value="RED" type="TEXT_FOREGROUND"/>
<color value="WHITE" type="TEXT_BACKGROUND"/>
</state>
</style>
<bind style="style" type="region" key="Table"/>
<bind style="style" type="region" key="List"/>
| Интерфейс | Описание |
|---|---|
| SynthConstants | Константы, используемые в Synth. |
| SynthIcon | Иконка, которой передаётся |
| SynthUI | SynthUI используется для получения SynthContext для определённого компонента. |
| Класс | Описание |
|---|---|
| ColorType | Типобезопасное перечисление цветов, которые можно извлечь из стиля. |
| Region | Отдельная область отрисовки компонента Swing. |
| SynthButtonUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthCheckBoxMenuItemUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthCheckBoxUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthColorChooserUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthComboBoxUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthContext | Неизменяемый временный объект, содержащий контекстную информацию о |
| SynthDesktopIconUI | Предоставляет делегата пользовательского интерфейса Synth L&F для минимизированного внутреннего фрейма на рабочем столе. |
| SynthDesktopPaneUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthEditorPaneUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthFormattedTextFieldUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthGraphicsUtils | Обертка для примитивных графических вызовов. |
| SynthInternalFrameUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthLabelUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthListUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthLookAndFeel | SynthLookAndFeel предоставляет основу для создания настраиваемого визуального оформления. |
| SynthMenuBarUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthMenuItemUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthMenuUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthOptionPaneUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthPainter |
|
| SynthPanelUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthPasswordFieldUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthPopupMenuUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthProgressBarUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthRadioButtonMenuItemUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthRadioButtonUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthRootPaneUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthScrollBarUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthScrollPaneUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthSeparatorUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthSliderUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthSpinnerUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthSplitPaneUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthStyle |
|
| SynthStyleFactory | Фабрика, используемая для получения |
| SynthTabbedPaneUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthTableHeaderUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthTableUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthTextAreaUI | Предоставляет внешний вид для простого текстового редактора в стиле Synth. |
| SynthTextFieldUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthTextPaneUI | Предоставляет внешний вид для стилизованного текстового редактора в стиле Synth. |
| SynthToggleButtonUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthToolBarUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthToolTipUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthTreeUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
| SynthViewportUI | Предоставляет делегата пользовательского интерфейса Synth L&F для |
© 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/synth/package-summary.html