Интерфейс 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/plaf/UIResource.html