Пакет javax.swing.plaf.synth
Synth — это настраиваемое визуальное оформление, в котором вся отрисовка делегирована.
См.: Описание
| Интерфейс | Описание |
|---|---|
| SynthConstants | Константы, используемые Synth. |
| SynthUI | SynthUI используется для получения SynthContext для конкретного компонента. |
| Класс | Описание |
|---|---|
| ColorType | Безопасное по типу перечисление цветов, которые можно получить из стиля. |
| Region | Отдельная область отрисовки компонента Swing. |
| SynthButtonUI | Предоставляет делегата UI Synth L&F для |
| SynthCheckBoxMenuItemUI | Предоставляет делегата UI Synth L&F для |
| SynthCheckBoxUI | Предоставляет делегата UI Synth L&F для |
| SynthColorChooserUI | Предоставляет делегата UI Synth L&F для |
| SynthComboBoxUI | Предоставляет делегата UI Synth L&F для |
| SynthContext | Неизменяемый временный объект, содержащий контекстную информацию о |
| SynthDesktopIconUI | Предоставляет делегата UI Synth L&F для минимизированного внутреннего фрейма на рабочем столе. |
| SynthDesktopPaneUI | Предоставляет делегата UI Synth L&F для |
| SynthEditorPaneUI | Предоставляет делегата UI Synth L&F для |
| SynthFormattedTextFieldUI | Предоставляет делегата UI Synth L&F для |
| SynthGraphicsUtils | Обёртка для примитивных графических вызовов. |
| SynthInternalFrameUI | Предоставляет делегата UI Synth L&F для |
| SynthLabelUI | Предоставляет делегата UI Synth L&F для |
| SynthListUI | Предоставляет делегата UI Synth L&F для |
| SynthLookAndFeel | SynthLookAndFeel обеспечивает основу для создания настраиваемого визуального оформления. |
| SynthMenuBarUI | Предоставляет делегата UI Synth L&F для |
| SynthMenuItemUI | Предоставляет делегата UI Synth L&F для |
| SynthMenuUI | Предоставляет делегата UI Synth L&F для |
| SynthOptionPaneUI | Предоставляет делегата UI Synth L&F для |
| SynthPainter |
|
| SynthPanelUI | Предоставляет делегата UI Synth L&F для |
| SynthPasswordFieldUI | Предоставляет делегата UI Synth L&F для |
| SynthPopupMenuUI | Предоставляет делегата UI Synth L&F для |
| SynthProgressBarUI | Предоставляет делегата UI Synth L&F для |
| SynthRadioButtonMenuItemUI | Предоставляет делегата UI Synth L&F для |
| SynthRadioButtonUI | Предоставляет делегата UI Synth L&F для |
| SynthRootPaneUI | Предоставляет делегата UI Synth L&F для |
| SynthScrollBarUI | Предоставляет делегата UI Synth L&F для |
| SynthScrollPaneUI | Предоставляет делегата UI Synth L&F для |
| SynthSeparatorUI | Предоставляет делегата UI Synth L&F для |
| SynthSliderUI | Предоставляет делегата UI Synth L&F для |
| SynthSpinnerUI | Предоставляет делегата UI Synth L&F для |
| SynthSplitPaneUI | Предоставляет делегата UI Synth L&F для |
| SynthStyle |
|
| SynthStyleFactory | Фабрика, используемая для получения |
| SynthTabbedPaneUI | Предоставляет делегата UI Synth L&F для |
| SynthTableHeaderUI | Предоставляет делегата UI Synth L&F для |
| SynthTableUI | Предоставляет делегата UI Synth L&F для |
| SynthTextAreaUI | Предоставляет визуальное оформление для простого текстового редактора в визуальном оформлении Synth. |
| SynthTextFieldUI | Предоставляет делегата UI Synth L&F для |
| SynthTextPaneUI | Предоставляет визуальное оформление для стилизованного текстового редактора в визуальном оформлении Synth. |
| SynthToggleButtonUI | Предоставляет делегата UI Synth L&F для |
| SynthToolBarUI | Предоставляет делегата UI Synth L&F для |
| SynthToolTipUI | Предоставляет делегата UI Synth L&F для |
| SynthTreeUI | Предоставляет делегата UI Synth L&F для |
| SynthViewportUI | Предоставляет делегата UI Synth L&F для |
Описание пакета 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"/>
© 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.