Интерфейс 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() могут использовать этот интерфейс, чтобы определить, было ли значение свойства переопределено. Например, свойство cellRenderer компонента JList инициализируется методом 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"));
}
- См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/plaf/UIResource.html