Пакет javax.swing.plaf.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"/>
- Since:
- 1.5
| Класс | Описание |
|---|---|
| ColorType | Безопасное по типам перечисление цветов, которые можно получить из стиля. |
| Region | Отдельная область отрисовки компонента Swing. |
| SynthButtonUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JButton. |
| SynthCheckBoxMenuItemUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JCheckBoxMenuItem. |
| SynthCheckBoxUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JCheckBox. |
| SynthColorChooserUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JColorChooser. |
| SynthComboBoxUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JComboBox. |
| SynthConstants | Константы, используемые Synth. |
| SynthContext | Неизменяемый временный объект, содержащий контекстную информацию о Region. |
| SynthDesktopIconUI | Предоставляет делегат пользовательского интерфейса Synth L&F для минимизированной внутренней рамки на рабочем столе. |
| SynthDesktopPaneUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JDesktopPane. |
| SynthEditorPaneUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JEditorPane. |
| SynthFormattedTextFieldUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JFormattedTextField. |
| SynthGraphicsUtils | Обёртка для примитивных графических вызовов. |
| SynthIcon | Иконка, которой передаётся SynthContext. |
| SynthInternalFrameUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JInternalFrame. |
| SynthLabelUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JLabel. |
| SynthListUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JList. |
| SynthLookAndFeel | SynthLookAndFeel предоставляет основу для создания настраиваемого внешнего вида. |
| SynthMenuBarUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JMenuBar. |
| SynthMenuItemUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JMenuItem. |
| SynthMenuUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JMenu. |
| SynthOptionPaneUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JOptionPane. |
| SynthPainter | SynthPainter используется для отрисовки частей JComponent. |
| SynthPanelUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JPanel. |
| SynthPasswordFieldUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JPasswordField. |
| SynthPopupMenuUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JPopupMenu. |
| SynthProgressBarUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JProgressBar. |
| SynthRadioButtonMenuItemUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JRadioButtonMenuItem. |
| SynthRadioButtonUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JRadioButton. |
| SynthRootPaneUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JRootPane. |
| SynthScrollBarUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JScrollBar. |
| SynthScrollPaneUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JScrollPane. |
| SynthSeparatorUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JSeparator. |
| SynthSliderUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JSlider. |
| SynthSpinnerUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JSpinner. |
| SynthSplitPaneUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JSplitPane. |
| SynthStyle | SynthStyle представляет собой набор свойств стиля. |
| SynthStyleFactory | Фабрика, используемая для получения SynthStyle. |
| SynthTabbedPaneUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JTabbedPane. |
| SynthTableHeaderUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JTableHeader. |
| SynthTableUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JTable. |
| SynthTextAreaUI | Предоставляет вид и ощущения для простого текстового редактора в стиле Synth. |
| SynthTextFieldUI | Предоставляет делегат пользовательского интерфейса Synth L&F для JTextField. |
| SynthTextPaneUI | Предоставляет вид и ощущения для стилизованного текстового редактора в стиле Synth. |
| SynthToggleButtonUI | Предоставляет делегат UI Synth L&F для JToggleButton. |
| SynthToolBarUI | Предоставляет делегат UI Synth L&F для JToolBar. |
| SynthToolTipUI | Предоставляет делегат UI Synth L&F для JToolTip. |
| SynthTreeUI | Предоставляет делегат UI Synth L&F для JTree. |
| SynthUI | SynthUI используется для получения SynthContext для определённого компонента. |
| SynthViewportUI | Предоставляет делегат UI Synth L&F для 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/plaf/synth/package-summary.html