Spec-Zone.ru › OpenJDK 17

Пакет 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"/>
 
Пакет Описание
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
Обеспечивает делегат пользовательского интерфейса Synth L&F для JToggleButton.
SynthToolBarUI
Обеспечивает делегат пользовательского интерфейса Synth L&F для JToolBar.
SynthToolTipUI
Обеспечивает делегат пользовательского интерфейса Synth L&F для JToolTip.
SynthTreeUI
Обеспечивает делегат пользовательского интерфейса Synth L&F для JTree.
SynthUI
SynthUI используется для получения SynthContext для определенного компонента.
SynthViewportUI
Обеспечивает делегат пользовательского интерфейса Synth L&F для JViewport.

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/plaf/synth/package-summary.html

Spec-Zone.ru

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