Spec-Zone.ru › OpenJDK 25

Package 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. Кроме того, 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
Пакет Описание
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 для 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.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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