Spec-Zone.ru › OpenJDK 24

Пакет javax.swing.plaf.synth

package 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"/>
 
Since:
1.5
Пакет Описание
javax.swing.plaf
Предоставляет один интерфейс и множество абстрактных классов, которые Swing использует для обеспечения своих переключаемых возможностей внешнего вида и ощущения.
javax.swing.plaf.basic
Предоставляет элементы пользовательского интерфейса, построенные в соответствии с базовым внешним видом и ощущением.
javax.swing.plaf.metal
Предоставляет элементы пользовательского интерфейса, построенные в соответствии с внешним видом и ощущением Java (ранее кодовое название Metal), которое является внешним видом и ощущением по умолчанию.
javax.swing.plaf.multi
Предоставляет элементы пользовательского интерфейса, объединяющие два или более внешних вида и ощущений.
javax.swing.plaf.nimbus
Предоставляет элементы пользовательского интерфейса, построенные в соответствии с кроссплатформенным внешним видом и ощущением Nimbus.
Класс Описание
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API