JavaTM 2 Platform
Standard Ed. 5.0

javax.swing
类 LookAndFeel

java.lang.Object
  继承者 javax.swing.LookAndFeel
直接已知子类:
BasicLookAndFeel, MultiLookAndFeel

public abstract class LookAndFeel
extends Object

从可插入外观组件的角度全面展现外观的特性。


构造方法摘要
LookAndFeel()
           
 
方法摘要
 UIDefaults getDefaults()
          此方法由 UIManager.setLookAndFeel 调用一次以创建特定于外观的默认表。
abstract  String getDescription()
          返回对此外观实现的单行描述,例如,"The CDE/Motif Look and Feel"。
static Object getDesktopPropertyValue(String systemPropertyName, Object fallbackValue)
          通过调用 Toolkit.getDefaultToolkit().getDesktopProperty() 返回指定系统桌面属性的值。
 Icon getDisabledIcon(JComponent component, Icon icon)
          返回具有禁用外观的 Icon
 Icon getDisabledSelectedIcon(JComponent component, Icon icon)
          返回由选定的禁用组件使用的 Icon
abstract  String getID()
          返回标识此外观的字符串。
abstract  String getName()
          返回标识此外观的短字符串,例如 "CDE/Motif"。
 boolean getSupportsWindowDecorations()
          如果 RootPaneUI 实例返回的 LookAndFeel 支持提供 JRootPane 中 Window 的装饰,则返回 true。
 void initialize()
          UIManager.setLookAndFeel 在首次调用(通常是惟一的调用)getDefaults() 之前调用此方法。
static void installBorder(JComponent c, String defaultBorderName)
          在指定组件上安装组件的默认 Border 对象的便捷方法,条件是该边框当前为 null 或者已经是 UIResource 的实例。
static void installColors(JComponent c, String defaultBgName, String defaultFgName)
          使用当前默认表中的值初始化组件的前景和背景颜色属性的便捷方法。
static void installColorsAndFont(JComponent c, String defaultBgName, String defaultFgName, String defaultFontName)
          使用当前默认表中的值初始化组件前景、背景和字体属性的便捷方法。
static void installProperty(JComponent c, String propertyName, Object propertyValue)
          在组件上安装具有指定名称和值的属性的便捷方法,条件是该属性尚未由客户端程序设置。
abstract  boolean isNativeLookAndFeel()
          如果基础平台具有“本机”外观,而且这是对它的一个实现,则返回 true。
abstract  boolean isSupportedLookAndFeel()
          如果基础平台支持和/或允许此外观,则返回 true。
static void loadKeyBindings(InputMap retMap, Object[] keys)
          将 key 中的绑定加载到 retMap 中。
static ComponentInputMap makeComponentInputMap(JComponent c, Object[] keys)
          从 key 创建一个 ComponentInputMap。
static Object makeIcon(Class<?> baseClass, String gifFile)
          创建 UIDefaults.LazyValue 的实用方法,前者为指定的 gifFile 文件名创建 ImageIcon UIResource。
static InputMap makeInputMap(Object[] keys)
          从 key 创建一个 InputMap。
static JTextComponent.KeyBinding[] makeKeyBindings(Object[] keyBindingList)
          构建 KeyBindings 列表的便捷方法。
 void provideErrorFeedback(Component component)
          在用户尝试一个无效操作时调用,例如,在具有焦点的不可编辑的 JTextField 中进行粘贴。
 String toString()
          返回显示和标识此对象属性的字符串。
 void uninitialize()
          UIManager.setLookAndFeel 仅在我们使用新的默认外观替换之前调用此方法。
static void uninstallBorder(JComponent c)
          在指定组件上卸载组件的默认边框的便捷方法,条件是该边框当前是 UIResource 的实例。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

LookAndFeel

public LookAndFeel()
方法详细信息

installColors

public static void installColors(JComponent c,
                                 String defaultBgName,
                                 String defaultFgName)
使用当前默认表中的值初始化组件的前景和背景颜色属性的便捷方法。仅在当前值为 null 或 UIResource 时才设置这些属性。

参数:
c - 安装默认颜色/字体属性的目标组件
defaultBgName - 默认背景的键
defaultFgName - 默认前景的键
另请参见:
installColorsAndFont(javax.swing.JComponent, java.lang.String, java.lang.String, java.lang.String), UIManager.getColor(java.lang.Object)

installColorsAndFont

public static void installColorsAndFont(JComponent c,
                                        String defaultBgName,
                                        String defaultFgName,
                                        String defaultFontName)
使用当前默认表中的值初始化组件前景、背景和字体属性的便捷方法。仅在当前值为 null 或 UIResource 时才设置这些属性。

参数:
c - 安装默认颜色/字体属性的目标组件
defaultBgName - 默认背景的键
defaultFgName - 默认前景的键
defaultFontName - 默认字体的键
另请参见:
installColors(javax.swing.JComponent, java.lang.String, java.lang.String), UIManager.getColor(java.lang.Object), UIManager.getFont(java.lang.Object)

installBorder

public static void installBorder(JComponent c,
                                 String defaultBorderName)
在指定组件上安装组件的默认 Border 对象的便捷方法,条件是该边框当前为 null 或者已经是 UIResource 的实例。

参数:
c - 安装默认边框的目标组件
defaultBorderName - 指定默认边框的键

uninstallBorder

public static void uninstallBorder(JComponent c)
在指定组件上卸载组件的默认边框的便捷方法,条件是该边框当前是 UIResource 的实例。

参数:
c - 卸载默认边框的目标组件

installProperty

public static void installProperty(JComponent c,
                                   String propertyName,
                                   Object propertyValue)
在组件上安装具有指定名称和值的属性的便捷方法,条件是该属性尚未由客户端程序设置。此方法供 UI 代理实例使用,该实例需要为基本类型 (boolean, int, ..) 的属性指定一个默认值,但不希望重写由客户端设置的值。由于基本属性值无法使用 UIResource 标记来包装,此方法使用私有状态来确定属性是否已由客户端设置。

参数:
c - 安装属性的目标组件
propertyName - 包含要设置的属性名的字符串
propertyValue - 包含该属性值的对象
抛出:
IllegalArgumentException - 如果指定的属性不是可以使用此方法设置的属性
ClassCastException - 指定的属性值与该属性的类型不匹配时抛出
NullPointerException - 在 c 或 propertyValue 为 null 时抛出

makeKeyBindings

public static JTextComponent.KeyBinding[] makeKeyBindings(Object[] keyBindingList)
构建 KeyBindings 列表的便捷方法。

返回 KeyBindings 的数组,其中的每个元素都是 keyBindingList 中一个 KeyStroke,Action 对。KeyStroke 可以是由 KeyStroke.getKeyStroke 方法指定格式的字符串,或者是一个 KeyStroke 对象。

操作为字符串。下面是一个示例:

        JTextComponent.KeyBinding[] multilineBindings = makeKeyBindings( new Object[] {
          "UP", DefaultEditorKit.upAction,
        "DOWN", DefaultEditorKit.downAction,
     "PAGE_UP", DefaultEditorKit.pageUpAction,
   "PAGE_DOWN", DefaultEditorKit.pageDownAction,
       "ENTER", DefaultEditorKit.insertBreakAction,
         "TAB", DefaultEditorKit.insertTabAction
  });
 

参数:
keyBindingList - KeyStroke,Action 对的数组
返回:
KeyBindings 数组

makeInputMap

public static InputMap makeInputMap(Object[] keys)
key 创建一个 InputMap。key 描述了 InputMap,每个偶数项作为一个字符串,按 KeyStroke.getKeyStroke(String)(或者一个 KeyStroke)中的说明给出 KeyStroke,Object 使用的每个奇数项用来确定 ActionMap 中关联的 Action。

从以下版本开始:
1.3

makeComponentInputMap

public static ComponentInputMap makeComponentInputMap(JComponent c,
                                                      Object[] keys)
key 创建一个 ComponentInputMap。key 描述了 InputMap,每个偶数项作为一个字符串,按 KeyStroke.getKeyStroke(String)(或者一个 KeyStroke)中的说明给出 KeyStroke,Object 使用的每个奇数项用来确定 ActionMap 中关联的 Action。

从以下版本开始:
1.3

loadKeyBindings

public static void loadKeyBindings(InputMap retMap,
                                   Object[] keys)
key 中的绑定加载到 retMap 中。这不会移除 retMap 中任何现有的绑定。key 描述了 InputMap,每个偶数项作为一个字符串,按 KeyStroke.getKeyStroke(String)(或者一个 KeyStroke)中的说明给出 KeyStroke,Object 使用的每个奇数项用来确定 ActionMap 中关联的 Action。

从以下版本开始:
1.3

makeIcon

public static Object makeIcon(Class<?> baseClass,
                              String gifFile)
创建 UIDefaults.LazyValue 的实用方法,前者为指定的 gifFile 文件名创建 ImageIcon UIResource。


provideErrorFeedback

public void provideErrorFeedback(Component component)
在用户尝试一个无效操作时调用,例如,在具有焦点的不可编辑的 JTextField 中进行粘贴。默认实现蜂鸣。期待不同行为的子类应重写它,并提供其他的反馈。

参数:
component - 其中发生错误的 Component,可以为 null,指示错误条件与某个 Component 无关
从以下版本开始:
1.4

getDesktopPropertyValue

public static Object getDesktopPropertyValue(String systemPropertyName,
                                             Object fallbackValue)
通过调用 Toolkit.getDefaultToolkit().getDesktopProperty() 返回指定系统桌面属性的值。如果指定属性的当前值为 null,则返回 fallbackValue。

参数:
systemPropertyName - 正被查询的系统桌面属性的名称
fallbackValue - 在系统值为 null 时,要作为值返回的对象
返回:
桌面属性的当前值
另请参见:
Toolkit.getDesktopProperty(java.lang.String)

getDisabledIcon

public Icon getDisabledIcon(JComponent component,
                            Icon icon)
返回具有禁用外观的 Icon。此方法用于在未指定图标时生成被禁用的 Icon。例如,如果创建了一个 JButton,并通过 setIcon 仅指定了一个 Icon,则会调用此方法来生成被禁用的 Icon。如果 null 作为 icon 传递,则此方法将返回 null。

有些外观可能不呈现被禁用的 Icon,在此情况下这些外观将忽略它。

参数:
component - 将显示 Icon 的 JComponent,可以为 null
icon - 从其生成禁用图标的 Icon。
返回:
禁用图标;如果无法生成合适的 Icon,则返回 null。
从以下版本开始:
1.5

getDisabledSelectedIcon

public Icon getDisabledSelectedIcon(JComponent component,
                                    Icon icon)
返回由选定的禁用组件使用的 Icon。此方法用于为以下情况的组件生成一个 Icon:这些组件均为禁用和选中状态,但没有此状态的指定 Icon。例如,如果创建了一个 JButton,并通过 setIcon 仅指定了一个 Icon,则会调用此方法来生成禁用和选中的 Icon。如果 null 作为 icon 传递,则此方法将返回 null。

有些外观可能不呈现禁用和选中的 Icon,在此情况下这些外观将忽略它。

参数:
component - 将显示 Icon 的 JComponent,可以为 null
icon - 从其生成禁用和选中图标的 Icon。
返回:
禁用和选中的图标,如果可以生成合适的 Icon,则返回 null。
从以下版本开始:
1.5

getName

public abstract String getName()
返回标识此外观的短字符串,例如 "CDE/Motif"。此字符串应适合于菜单项。不同的外观应具有不同的名称,例如,更改某些组件呈现方式的 MotifLookAndFeel 的子类应称为 "CDE/Motif My Way";这对从名称列表中选择外观的用户非常有用。


getID

public abstract String getID()
返回标识此外观的字符串。此字符串将由希望识别著名外观实现的应用程序/服务使用。目前著名的名称有“Motif”、“Windows”、“Mac”和“Metal”。注意,由未对外观进行任何基本更改的著名超类派生的 LookAndFeel 不应重写此方法。


getDescription

public abstract String getDescription()
返回对此外观实现的单行描述,例如,"The CDE/Motif Look and Feel"。此字符串供用户使用,例如,在窗口的标题中或在 ToolTip 消息中使用。


getSupportsWindowDecorations

public boolean getSupportsWindowDecorations()
如果 RootPaneUI 实例返回的 LookAndFeel 支持提供 JRootPane 中 Window 的装饰,则返回 true。

默认实现返回 false,支持 Window 装饰的子类应重写它并返回 true。

返回:
如果创建的 RootPaneUI 实例支持客户端装饰,则返回 True
从以下版本开始:
1.4
另请参见:
JDialog.setDefaultLookAndFeelDecorated(boolean), JFrame.setDefaultLookAndFeelDecorated(boolean), JRootPane.setWindowDecorationStyle(int)

isNativeLookAndFeel

public abstract boolean isNativeLookAndFeel()
如果基础平台具有“本机”外观,而且这是对它的一个实现,则返回 true。例如,在基础平台为 Solaris 时,CDE/Motif 的外观和实现将返回 true。


isSupportedLookAndFeel

public abstract boolean isSupportedLookAndFeel()
如果基础平台支持和/或允许此外观,则返回 true。如果外观取决于特定资源或未为当前平台定义的合法协议,则此方法返回 false。

另请参见:
UIManager.setLookAndFeel(javax.swing.LookAndFeel)

initialize

public void initialize()
UIManager.setLookAndFeel 在首次调用(通常是惟一的调用)getDefaults() 之前调用此方法。子类应执行此处所需的任意一次性设置,而非静态初始化程序,因为可以加载外观类对象来仅发现 isSupportedLookAndFeel() 返回 false。

另请参见:
uninitialize(), UIManager.setLookAndFeel(javax.swing.LookAndFeel)

uninitialize

public void uninitialize()
UIManager.setLookAndFeel 仅在我们使用新的默认外观替换之前调用此方法。子类在此处可以选择释放一些资源。

另请参见:
initialize()

getDefaults

public UIDefaults getDefaults()
此方法由 UIManager.setLookAndFeel 调用一次以创建特定于外观的默认表。其他应用程序(例如应用程序生成器)也可以调用此方法。

另请参见:
initialize(), uninitialize(), UIManager.setLookAndFeel(javax.swing.LookAndFeel)

toString

public String toString()
返回显示和标识此对象属性的字符串。

覆盖:
Object 中的 toString
返回:
此对象的字符串表示形式

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策