Интерфейс UIResource
- Все известные реализующие классы:
- ActionMapUIResource, BasicBorders.ButtonBorder, BasicBorders.FieldBorder, BasicBorders.MarginBorder, BasicBorders.MenuBarBorder, BasicBorders.RadioButtonBorder, BasicBorders.RolloverButtonBorder, BasicBorders.SplitPaneBorder, BasicBorders.ToggleButtonBorder, BasicComboBoxEditor.UIResource, BasicComboBoxRenderer.UIResource, BasicTextUI.BasicCaret, BasicTextUI.BasicHighlighter, BorderUIResource, BorderUIResource.BevelBorderUIResource, BorderUIResource.CompoundBorderUIResource, BorderUIResource.EmptyBorderUIResource, BorderUIResource.EtchedBorderUIResource, BorderUIResource.LineBorderUIResource, BorderUIResource.MatteBorderUIResource, BorderUIResource.TitledBorderUIResource, ColorUIResource, ComponentInputMapUIResource, DefaultListCellRenderer.UIResource, DefaultMenuLayout, DefaultTableCellRenderer.UIResource, DimensionUIResource, FontUIResource, IconUIResource, InputMapUIResource, InsetsUIResource, JScrollPane.ScrollBar, MetalBorders.ButtonBorder, MetalBorders.Flush3DBorder, MetalBorders.InternalFrameBorder, MetalBorders.MenuBarBorder, MetalBorders.MenuItemBorder, MetalBorders.OptionDialogBorder, MetalBorders.PaletteBorder, MetalBorders.PopupMenuBorder, MetalBorders.RolloverButtonBorder, MetalBorders.ScrollPaneBorder, MetalBorders.TextFieldBorder, MetalBorders.ToggleButtonBorder, MetalBorders.ToolBarBorder, MetalCheckBoxIcon, MetalComboBoxEditor.UIResource, MetalIconFactory.PaletteCloseIcon, ScrollPaneLayout.UIResource
public interface UIResource
Этот интерфейс используется для маркировки объектов, созданных делегатами ComponentUI. Методы ComponentUI.installUI() и ComponentUI.uninstallUI() могут использовать этот интерфейс, чтобы определить, было ли значение свойства переопределено. Например, свойство JList cellRenderer инициализируется методом BasicListUI.installUI(), только если его начальное значение равно null:
if (list.getCellRenderer() == null) {
list.setCellRenderer((ListCellRenderer)(UIManager.get("List.cellRenderer")));
} Во время uninstallUI() мы сбрасываем свойство до null, если его значение является экземпляром UIResource: if (list.getCellRenderer() instanceof UIResource) {
list.setCellRenderer(null);
} Этот шаблон применяется ко всем свойствам, за исключением свойств java.awt.Component font, foreground и background. Если одно из этих свойств не инициализировано или явно установлено в null, его контейнер предоставляет значение. По этой причине "== null" ненадежен при вызове installUI() для динамического изменения внешнего вида компонента. Поэтому при вызове installUI() мы проверяем, является ли текущее значение UIResource: if (!(list.getFont() instanceof UIResource)) {
list.setFont(UIManager.getFont("List.font"));
} - См. также:
ComponentUI
© 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.