モジュール java.desktop
パッケージ javax.swing.plaf

インタフェース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プロパティは、その初期値がnullの場合に限りBasicListUI.installUI()によって初期化されます。
 if (list.getCellRenderer() == null) {
     list.setCellRenderer((ListCellRenderer)(UIManager.get("List.cellRenderer")));
 }
 
uninstallUI()のときに、プロパティの値がUIResourceのインスタンスである場合は、プロパティをnullにリセットします。
 if (list.getCellRenderer() instanceof UIResource) {
     list.setCellRenderer(null);
 }
このパターンは、java.awt.Componentのプロパティのフォント、フォアグラウンド、およびバックグラウンド以外のすべてのプロパティに適用されます。 もし、これらのプロパティのうちの1つが初期化されていない場合、あるいは明示的にnullに設定されている場合には、そのコンテナが値を提供します。 こうした理由により、コンポーネントのLook & Feelを動的に変更するためにinstallUI()が呼び出された場合、"== null"を信頼することはできません。 したがって、installUI()実行時には、現在の値がUIResourceであるかどうかを調べます。
 if (!(list.getFont() instanceof UIResource)) {
     list.setFont(UIManager.getFont("List.font"));
 }
 
関連項目: