Spec-Zone.ru › OpenJDK 8

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

Synth — это настраиваемое визуальное оформление, в котором вся отрисовка делегирована.

См.: Описание

Интерфейс Описание
SynthConstants

Константы, используемые Synth.

SynthUI

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

Класс Описание
ColorType

Безопасное по типу перечисление цветов, которые можно получить из стиля.

Region

Отдельная область отрисовки компонента Swing.

SynthButtonUI

Предоставляет делегата UI Synth L&F для JButton.

SynthCheckBoxMenuItemUI

Предоставляет делегата UI Synth L&F для JCheckBoxMenuItem.

SynthCheckBoxUI

Предоставляет делегата UI Synth L&F для JCheckBox.

SynthColorChooserUI

Предоставляет делегата UI Synth L&F для JColorChooser.

SynthComboBoxUI

Предоставляет делегата UI Synth L&F для JComboBox.

SynthContext

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

SynthDesktopIconUI

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

SynthDesktopPaneUI

Предоставляет делегата UI Synth L&F для JDesktopPane.

SynthEditorPaneUI

Предоставляет делегата UI Synth L&F для JEditorPane.

SynthFormattedTextFieldUI

Предоставляет делегата UI Synth L&F для JFormattedTextField.

SynthGraphicsUtils

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

SynthInternalFrameUI

Предоставляет делегата UI Synth L&F для JInternalFrame.

SynthLabelUI

Предоставляет делегата UI Synth L&F для JLabel.

SynthListUI

Предоставляет делегата UI Synth L&F для JList.

SynthLookAndFeel

SynthLookAndFeel обеспечивает основу для создания настраиваемого визуального оформления.

SynthMenuBarUI

Предоставляет делегата UI Synth L&F для JMenuBar.

SynthMenuItemUI

Предоставляет делегата UI Synth L&F для JMenuItem.

SynthMenuUI

Предоставляет делегата UI Synth L&F для JMenu.

SynthOptionPaneUI

Предоставляет делегата UI Synth L&F для JOptionPane.

SynthPainter

SynthPainter используется для отрисовки частей JComponent.

SynthPanelUI

Предоставляет делегата UI Synth L&F для JPanel.

SynthPasswordFieldUI

Предоставляет делегата UI Synth L&F для JPasswordField.

SynthPopupMenuUI

Предоставляет делегата UI Synth L&F для JPopupMenu.

SynthProgressBarUI

Предоставляет делегата UI Synth L&F для JProgressBar.

SynthRadioButtonMenuItemUI

Предоставляет делегата UI Synth L&F для JRadioButtonMenuItem.

SynthRadioButtonUI

Предоставляет делегата UI Synth L&F для JRadioButton.

SynthRootPaneUI

Предоставляет делегата UI Synth L&F для JRootPane.

SynthScrollBarUI

Предоставляет делегата UI Synth L&F для JScrollBar.

SynthScrollPaneUI

Предоставляет делегата UI Synth L&F для JScrollPane.

SynthSeparatorUI

Предоставляет делегата UI Synth L&F для JSeparator.

SynthSliderUI

Предоставляет делегата UI Synth L&F для JSlider.

SynthSpinnerUI

Предоставляет делегата UI Synth L&F для JSpinner.

SynthSplitPaneUI

Предоставляет делегата UI Synth L&F для JSplitPane.

SynthStyle

SynthStyle — это набор свойств стиля.

SynthStyleFactory

Фабрика, используемая для получения SynthStyle.

SynthTabbedPaneUI

Предоставляет делегата UI Synth L&F для JTabbedPane.

SynthTableHeaderUI

Предоставляет делегата UI Synth L&F для JTableHeader.

SynthTableUI

Предоставляет делегата UI Synth L&F для JTable.

SynthTextAreaUI

Предоставляет визуальное оформление для простого текстового редактора в визуальном оформлении Synth.

SynthTextFieldUI

Предоставляет делегата UI 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.

SynthViewportUI

Предоставляет делегата UI Synth L&F для JViewport.

Описание пакета 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"/>

© 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.

Spec-Zone.ru

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