Package javax.swing.plaf.synth
SynthStyleFactory. Для обоих вариантов настройки требуется понимание архитектуры Synth, описанной ниже, а также архитектуры Swing. Если не указано иное, null не является допустимым значением ни для одного из методов, определённых в пакете synth, и его передача приведёт к NullPointerException.
Synth
Каждая реализацияComponentUI в Synth связывает себя с одним SynthStyle для каждого Region; большинство Components имеют только один Region и, следовательно, только один SynthStyle. SynthStyle используется для доступа ко всем связанным со стилем свойствам: шрифтам, цветам и другим свойствам Component. Кроме того, SynthStyles используются для получения SynthPainters, предназначенных для отрисовки фона, границы, фокуса и других частей Component. ComponentUIs получают SynthStyles из SynthStyleFactory. SynthStyleFactory можно предоставить напрямую с помощью SynthLookAndFeel.setStyleFactory(javax.swing.plaf.synth.SynthStyleFactory) или косвенно с помощью SynthLookAndFeel.load(InputStream, 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, которая отрисовывается.
Вся отрисовка текста, выполняемая не-JTextComponents, делегируется SynthGraphicsUtils, который получают с помощью метода SynthStyle SynthStyle.getGraphicsUtils(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"/>
- С версии:
- 1.5
| Класс | Описание |
|---|---|
| ColorType | Типобезопасное перечисление цветов, которые можно получить из стиля. |
| Region | Отдельная область отрисовки компонента Swing. |
| SynthButtonUI | Предоставляет делегат пользовательского интерфейса Synth для JButton. |
| SynthCheckBoxMenuItemUI | Предоставляет делегат пользовательского интерфейса Synth для JCheckBoxMenuItem. |
| SynthCheckBoxUI | Предоставляет делегат пользовательского интерфейса Synth для JCheckBox. |
| SynthColorChooserUI | Предоставляет делегат пользовательского интерфейса Synth для JColorChooser. |
| SynthComboBoxUI | Предоставляет делегат пользовательского интерфейса Synth для JComboBox. |
| SynthConstants | Константы, используемые Synth. |
| SynthContext | Неизменяемый временный объект, содержащий контекстную информацию о Region. |
| SynthDesktopIconUI | Предоставляет делегат пользовательского интерфейса Synth для свёрнутого внутреннего окна на рабочем столе. |
| SynthDesktopPaneUI | Предоставляет делегат пользовательского интерфейса Synth для JDesktopPane. |
| SynthEditorPaneUI | Предоставляет делегат пользовательского интерфейса Synth для JEditorPane. |
| SynthFormattedTextFieldUI | Предоставляет делегат пользовательского интерфейса Synth для JFormattedTextField. |
| SynthGraphicsUtils | Обёртка для примитивных графических вызовов. |
| SynthIcon | Значок, которому передаётся SynthContext. |
| SynthInternalFrameUI | Предоставляет делегат пользовательского интерфейса Synth для JInternalFrame. |
| SynthLabelUI | Предоставляет делегат пользовательского интерфейса Synth для JLabel. |
| SynthListUI | Предоставляет делегат пользовательского интерфейса Synth для JList. |
| SynthLookAndFeel | SynthLookAndFeel предоставляет основу для создания настраиваемого внешнего вида. |
| SynthMenuBarUI | Предоставляет делегат пользовательского интерфейса Synth для JMenuBar. |
| SynthMenuItemUI | Предоставляет делегат пользовательского интерфейса Synth для JMenuItem. |
| SynthMenuUI | Предоставляет делегат пользовательского интерфейса Synth для JMenu. |
| SynthOptionPaneUI | Предоставляет делегат пользовательского интерфейса Synth для JOptionPane. |
| SynthPainter | SynthPainter используется для отрисовки частей JComponents. |
| SynthPanelUI | Предоставляет делегат пользовательского интерфейса Synth для JPanel. |
| SynthPasswordFieldUI | Предоставляет делегат пользовательского интерфейса Synth для JPasswordField. |
| SynthPopupMenuUI | Предоставляет делегат пользовательского интерфейса Synth для JPopupMenu. |
| SynthProgressBarUI | Предоставляет делегат пользовательского интерфейса Synth для JProgressBar. |
| SynthRadioButtonMenuItemUI | Предоставляет делегат пользовательского интерфейса Synth для JRadioButtonMenuItem. |
| SynthRadioButtonUI | Предоставляет делегат пользовательского интерфейса Synth для JRadioButton. |
| SynthRootPaneUI | Предоставляет делегат пользовательского интерфейса Synth для JRootPane. |
| SynthScrollBarUI | Предоставляет делегат пользовательского интерфейса Synth для JScrollBar. |
| SynthScrollPaneUI | Предоставляет делегат пользовательского интерфейса Synth для JScrollPane. |
| SynthSeparatorUI | Предоставляет делегат пользовательского интерфейса Synth для JSeparator. |
| SynthSliderUI | Предоставляет делегат пользовательского интерфейса Synth для JSlider. |
| SynthSpinnerUI | Предоставляет делегат пользовательского интерфейса Synth для JSpinner. |
| SynthSplitPaneUI | Предоставляет делегат пользовательского интерфейса Synth для JSplitPane. |
| SynthStyle | SynthStyle — это набор свойств стиля. |
| SynthStyleFactory | Фабрика для получения SynthStyles. |
| SynthTabbedPaneUI | Предоставляет делегат пользовательского интерфейса Synth для JTabbedPane. |
| SynthTableHeaderUI | Предоставляет делегат пользовательского интерфейса Synth для JTableHeader. |
| SynthTableUI | Предоставляет делегат пользовательского интерфейса Synth для JTable. |
| SynthTextAreaUI | Предоставляет внешний вид обычного текстового редактора в Synth. |
| SynthTextFieldUI | Предоставляет делегат пользовательского интерфейса Synth для JTextField. |
| SynthTextPaneUI | Предоставляет внешний вид редактора форматированного текста в Synth. |
| SynthToggleButtonUI | Предоставляет делегат пользовательского интерфейса Synth для JToggleButton. |
| SynthToolBarUI | Предоставляет делегат пользовательского интерфейса Synth для JToolBar. |
| SynthToolTipUI | Предоставляет делегат пользовательского интерфейса Synth для JToolTip. |
| SynthTreeUI | Предоставляет делегат пользовательского интерфейса Synth для JTree. |
| SynthUI | SynthUI используется для получения SynthContext для определённого компонента. |
| SynthViewportUI | Предоставляет делегат пользовательского интерфейса Synth для JViewport. |
© 1993, 2025, 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/25/docs/api/java.desktop/javax/swing/plaf/synth/package-summary.html