48 lines
8.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.swing.plaf
</div>
<h2 class="title" title="Interface UIResource">Interface UIResource</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
所有已知实现类:
</dt>
<dd>
<span><a href="../../../javax/swing/plaf/ActionMapUIResource.html" title="javax.swing.plaf中的类">ActionMapUIResource</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.ButtonBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.ButtonBorder</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.FieldBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.FieldBorder</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.MarginBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.MarginBorder</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.MenuBarBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.MenuBarBorder</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.RadioButtonBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.RadioButtonBorder</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.RolloverButtonBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.RolloverButtonBorder</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.SplitPaneBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.SplitPaneBorder</a> <a href="../../../javax/swing/plaf/basic/BasicBorders.ToggleButtonBorder.html" title="javax.swing.plaf.basic中的类">BasicBorders.ToggleButtonBorder</a> <a href="../../../javax/swing/plaf/basic/BasicComboBoxEditor.UIResource.html" title="javax.swing.plaf.basic中的类">BasicComboBoxEditor.UIResource</a> <a href="../../../javax/swing/plaf/basic/BasicComboBoxRenderer.UIResource.html" title="javax.swing.plaf.basic中的类">BasicComboBoxRenderer.UIResource</a> <a href="../../../javax/swing/plaf/basic/BasicTextUI.BasicCaret.html" title="javax.swing.plaf.basic中的类">BasicTextUI.BasicCaret</a> <a href="../../../javax/swing/plaf/basic/BasicTextUI.BasicHighlighter.html" title="javax.swing.plaf.basic中的类">BasicTextUI.BasicHighlighter</a> <a href="../../../javax/swing/plaf/BorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource</a> <a href="../../../javax/swing/plaf/BorderUIResource.BevelBorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource.BevelBorderUIResource</a> <a href="../../../javax/swing/plaf/BorderUIResource.CompoundBorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource.CompoundBorderUIResource</a> <a href="../../../javax/swing/plaf/BorderUIResource.EmptyBorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource.EmptyBorderUIResource</a> <a href="../../../javax/swing/plaf/BorderUIResource.EtchedBorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource.EtchedBorderUIResource</a> <a href="../../../javax/swing/plaf/BorderUIResource.LineBorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource.LineBorderUIResource</a> <a href="../../../javax/swing/plaf/BorderUIResource.MatteBorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource.MatteBorderUIResource</a> <a href="../../../javax/swing/plaf/BorderUIResource.TitledBorderUIResource.html" title="javax.swing.plaf中的类">BorderUIResource.TitledBorderUIResource</a> <a href="../../../javax/swing/plaf/ColorUIResource.html" title="javax.swing.plaf中的类">ColorUIResource</a> <a href="../../../javax/swing/plaf/ComponentInputMapUIResource.html" title="javax.swing.plaf中的类">ComponentInputMapUIResource</a> <a href="../../../javax/swing/DefaultListCellRenderer.UIResource.html" title="javax.swing中的类">DefaultListCellRenderer.UIResource</a> <a href="../../../javax/swing/plaf/basic/DefaultMenuLayout.html" title="javax.swing.plaf.basic中的类">DefaultMenuLayout</a> <a href="../../../javax/swing/table/DefaultTableCellRenderer.UIResource.html" title="javax.swing.table中的类">DefaultTableCellRenderer.UIResource</a> <a href="../../../javax/swing/plaf/DimensionUIResource.html" title="javax.swing.plaf中的类">DimensionUIResource</a> <a href="../../../javax/swing/plaf/FontUIResource.html" title="javax.swing.plaf中的类">FontUIResource</a> <a href="../../../javax/swing/plaf/IconUIResource.html" title="javax.swing.plaf中的类">IconUIResource</a> <a href="../../../javax/swing/plaf/InputMapUIResource.html" title="javax.swing.plaf中的类">InputMapUIResource</a> <a href="../../../javax/swing/plaf/InsetsUIResource.html" title="javax.swing.plaf中的类">InsetsUIResource</a> <a href="../../../javax/swing/JScrollPane.ScrollBar.html" title="javax.swing中的类">JScrollPane.ScrollBar</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.ButtonBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.ButtonBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.Flush3DBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.Flush3DBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.InternalFrameBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.InternalFrameBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.MenuBarBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.MenuBarBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.MenuItemBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.MenuItemBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.OptionDialogBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.OptionDialogBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.PaletteBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.PaletteBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.PopupMenuBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.PopupMenuBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.RolloverButtonBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.RolloverButtonBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.ScrollPaneBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.ScrollPaneBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.TextFieldBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.TextFieldBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.ToggleButtonBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.ToggleButtonBorder</a> <a href="../../../javax/swing/plaf/metal/MetalBorders.ToolBarBorder.html" title="javax.swing.plaf.metal中的类">MetalBorders.ToolBarBorder</a> <a href="../../../javax/swing/plaf/metal/MetalCheckBoxIcon.html" title="javax.swing.plaf.metal中的类">MetalCheckBoxIcon</a> <a href="../../../javax/swing/plaf/metal/MetalComboBoxEditor.UIResource.html" title="javax.swing.plaf.metal中的类">MetalComboBoxEditor.UIResource</a> <a href="../../../javax/swing/plaf/metal/MetalIconFactory.PaletteCloseIcon.html" title="javax.swing.plaf.metal中的类">MetalIconFactory.PaletteCloseIcon</a> <a href="../../../javax/swing/ScrollPaneLayout.UIResource.html" title="javax.swing中的类">ScrollPaneLayout.UIResource</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">UIResource</span></pre>
<div class="block">
<span>此接口用于标记由ComponentUI委托创建的对象。</span>
<span><code>ComponentUI.installUI()</code><code>ComponentUI.uninstallUI()</code>方法可以使用此接口来决定属性值是否已被覆盖。</span>
<span>例如JList cellRenderer属性由BasicListUI.installUI初始化只有当它的初始值为null时</span>
<pre> <span>if (list.getCellRenderer() == null) {
list.setCellRenderer((ListCellRenderer)(UIManager.get("List.cellRenderer")));
}</span> </pre>
<span>在uninstallUI时间如果该值为UIResource的实例则将该属性重置为null</span>
<pre> <span>if (list.getCellRenderer() instanceof UIResource) {
list.setCellRenderer(null);
}</span> </pre>
<span>此模式适用于除java.awt.Component属性字体前景和背景之外的所有属性。</span>
<span>如果这些属性之一未初始化或者显式设置为null则其容器将提供该值。</span>
<span>因此, <code>"== null"</code> installUI来动态更改组件外观时"== null"是不可靠的。</span>
<span>所以在installUI时候我们检查当前值是否是UIResource</span>
<pre> <span>if (!(list.getFont() instanceof UIResource)) {
list.setFont(UIManager.getFont("List.font"));
}</span> </pre>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/swing/plaf/ComponentUI.html" title="javax.swing.plaf中的类"><code>ComponentUI</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
</div>