Пакет 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

Иконка, которой передаётся SynthContext.

SynthUI

SynthUI используется для получения SynthContext для определённого компонента.

Класс Описание
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.

SynthContext

Неизменяемый временный объект, содержащий контекстную информацию о Region.

SynthDesktopIconUI

Предоставляет делегата пользовательского интерфейса Synth L&F для минимизированного внутреннего фрейма на рабочем столе.

SynthDesktopPaneUI

Предоставляет делегата пользовательского интерфейса Synth L&F для JDesktopPane.

SynthEditorPaneUI

Предоставляет делегата пользовательского интерфейса Synth L&F для JEditorPane.

SynthFormattedTextFieldUI

Предоставляет делегата пользовательского интерфейса Synth L&F для JFormattedTextField.

SynthGraphicsUtils

Обертка для примитивных графических вызовов.

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

Предоставляет делегата пользовательского интерфейса Synth L&F для JToggleButton.

SynthToolBarUI

Предоставляет делегата пользовательского интерфейса Synth L&F для JToolBar.

SynthToolTipUI

Предоставляет делегата пользовательского интерфейса Synth L&F для JToolTip.

SynthTreeUI

Предоставляет делегата пользовательского интерфейса Synth L&F для JTree.

SynthViewportUI

Предоставляет делегата пользовательского интерфейса Synth L&F для JViewport.

© 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

Spec-Zone .ru
спецификации, руководства, описания, API