模块  java.desktop
软件包  javax.swing

Class UIManager

  • 实现的所有接口
    Serializable

    public class UIManager
    extends Object
    implements Serializable
    UIManager管理当前外观,可用外观集PropertyChangeListeners ,当外观更改时,通知和默认情况下通知,以及获取各种默认值的便捷方法。

    指定外观

    可以通过两种不同的方式指定外观:通过为外观指定类的完全限定名称,或者通过创建LookAndFeel的实例并将其传递给setLookAndFeel 以下示例说明了将外观设置为系统外观:
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    以下示例说明了基于类名设置外观:
      UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); 
    一旦外观和感觉已经改变了它必须调用updateUI所有JComponents 方法SwingUtilities.updateComponentTreeUI(java.awt.Component)使得将updateUI应用于包含层次结构变得容易。 有关详细信息,请参阅它。 更改外观后未调用updateUI的确切行为未指定。 很可能会收到意外的异常,绘画问题或更糟。

    默认外观

    用于默认外观的类按以下方式选择:
    1. 如果系统属性swing.defaultlafnon-nullnon-null其值用作默认外观类名。
    2. 如果Properties文件swing.properties存在且包含密钥swing.defaultlafswing.defaultlaf其值用作默认外观类名。 检查swing.properties的位置可能会有所不同,具体取决于Java平台的实现。 通常, swing.properties文件位于Java安装目录的conf子目录中。 有关更多详细信息,请参阅所用实现的发行说明。
    3. 否则使用跨平台的外观。

    默认

    UIManager管理三套UIDefaults 按顺序,它们是:
    1. 开发者默认值。 除了少数例外,Swing不会改变开发人员默认值; 这些是供开发人员修改和使用的。
    2. 外观默认。 外观和默认设置由安装时的外观作为当前外观提供(调用setLookAndFeel() )。 可以使用getLookAndFeelDefaults()方法获取外观默认值。
    3. 系统默认值。 系统默认值由Swing提供。
    调用任何各种get方法会导致按顺序检查每个默认值,返回第一个non-null值。 例如,调用UIManager.getString("Table.foreground")导致首先检查开发人员默认值。 如果开发人员默认值包含"Table.foreground"的值,则返回该值,否则将检查外观默认值,然后检查系统默认值。

    值得注意的是, getDefaults返回getDefaults的自定义实例,其中UIDefaults了此分辨率逻辑。 例如, UIManager.getDefaults().getString("Table.foreground")相当于UIManager.getString("Table.foreground") 两者都使用刚刚描述的算法解析。 在许多地方,文档使用单词defaults来引用自定义实例UIDefaults ,其解析逻辑如前所述。

    当外观改变时, UIManager仅改变外观默认值; UIManager以任何方式更改开发人员和系统默认值。

    特定外观和支持的默认设置由该外观定义和记录。 此外,外观提供的每个外观或ComponentUI可以在其生命周期的不同时间访问默认值。 某些外观可能会积极地查找默认值,因此在安装外观后更改默认值可能不起作用。 其他外观可能会懒惰地访问默认值,以便更改默认值可能会影响现有的外观。 最后,其他外观可能无法以任何方式从默认表中进行配置。 通常情况下,外观通常需要某些默认值,因此通常情况下,由一个外观提供的ComponentUI将无法使用其他外观。

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • UIManager

        public UIManager()
    • 方法详细信息

      • getInstalledLookAndFeels

        public static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels()
        返回LookAndFeelInfo的数组,表示当前可用的LookAndFeel实现。 应用程序可以使用LookAndFeelInfo对象为用户构建外观选项菜单,或确定在启动时设置的外观。 为避免创建大量LookAndFeel对象的惩罚, LookAndFeelInfo维护LookAndFeel类的类名,而不是实际的LookAndFeel实例。

        以下示例说明了如何从LookAndFeelInfo的实例设置当前外观:

          UIManager.setLookAndFeel(info.getClassName()); 
        结果
        一组 LookAndFeelInfo对象
        另请参见:
        setLookAndFeel(javax.swing.LookAndFeel)
      • installLookAndFeel

        public static void installLookAndFeel​(String name,
                                              String className)
        将指定的外观添加到可用外观集中。 虽然此方法不以任何方式检查参数,但强烈建议提供non-null值。
        参数
        name - 外观的描述性名称
        className - 实现外观的类的名称
        另请参见:
        setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
      • setLookAndFeel

        public static void setLookAndFeel​(LookAndFeel newLookAndFeel)
                                   throws UnsupportedLookAndFeelException
        将当前外观设置为newLookAndFeel 如果当前的外观和感觉是non-null uninitialize调用就可以了。 如果newLookAndFeelnon-null ,则在其上调用non-nullinitialize调用getDefaults newLookAndFeel.getDefaults()返回的默认值将替换先前外观中的默认值。 如果newLookAndFeelnull ,则外观默认设置为null

        null可用于将外观设置为null 由于LookAndFeel所需的大多数Swing的运行,设置LookAndFeelnull强烈反对。

        这是一个JavaBeans绑定属性。

        参数
        newLookAndFeel - LookAndFeel进行安装
        异常
        UnsupportedLookAndFeelException - 如果 newLookAndFeelnon-nullnewLookAndFeel.isSupportedLookAndFeel()返回 false
        另请参见:
        getLookAndFeel()
      • getSystemLookAndFeelClassName

        public static String getSystemLookAndFeelClassName()
        返回实现本机系统外观的LookAndFeel类的名称(如果有),否则返回默认跨平台LookAndFeel类的名称。 可以通过设置swing.systemlaf系统属性来覆盖此值。
        结果
        String的的 LookAndFeel
        另请参见:
        setLookAndFeel(javax.swing.LookAndFeel)getCrossPlatformLookAndFeelClassName()
      • getCrossPlatformLookAndFeelClassName

        public static String getCrossPlatformLookAndFeelClassName()
        返回实现默认跨平台外观的LookAndFeel类的名称 - Java外观(JLF)。 可以通过设置swing.crossplatformlaf系统属性来覆盖此值。
        结果
        带有JLF实现类的字符串
        另请参见:
        setLookAndFeel(javax.swing.LookAndFeel)getSystemLookAndFeelClassName()
      • getDefaults

        public static UIDefaults getDefaults()
        返回默认值。 返回的默认值使用类文档中指定的逻辑解析。
        结果
        包含默认值的 UIDefaults对象
      • getFont

        public static Font getFont​(Object key)
        从默认值返回字体。 如果key的值不是Font ,则返回null
        参数
        key - 指定字体的 Object
        结果
        Font对象
        异常
        NullPointerException - 如果 keynull
      • getFont

        public static Font getFont​(Object key,
                                   Locale l)
        返回适合给定语言环境的默认值的字体。 如果key的值不是Font ,则返回null
        参数
        key - 指定字体的 Object
        l - 需要字体的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        Font对象
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getColor

        public static Color getColor​(Object key)
        返回默认值的颜色。 如果key的值不是Color ,则返回null
        参数
        key - 指定颜色的 Object
        结果
        Color对象
        异常
        NullPointerException - 如果 keynull
      • getColor

        public static Color getColor​(Object key,
                                     Locale l)
        返回适合给定语言环境的默认值的颜色。 如果key的值不是Color ,则返回null
        参数
        key - 指定颜色的 Object
        l - 需要颜色的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        Color对象
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getIcon

        public static Icon getIcon​(Object key)
        从默认值返回Icon 如果key的值不是Icon ,则返回null
        参数
        key - 指定图标的 Object
        结果
        Icon对象
        异常
        NullPointerException - 如果 keynull
      • getIcon

        public static Icon getIcon​(Object key,
                                   Locale l)
        从适用于给定语言环境的默认值返回Icon 如果key的值不是Icon ,则返回null
        参数
        key - 指定图标的 Object
        l - 需要图标的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        Icon对象
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getBorder

        public static Border getBorder​(Object key)
        从默认值返回边框。 如果key的值不是Border ,则返回null
        参数
        key - 指定边框的 Object
        结果
        Border对象
        异常
        NullPointerException - 如果 keynull
      • getBorder

        public static Border getBorder​(Object key,
                                       Locale l)
        返回适合给定语言环境的默认值的边框。 如果key的值不是Border ,则返回null
        参数
        key - 指定边框的 Object
        l - 需要边框的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        Border对象
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getString

        public static String getString​(Object key)
        从默认值返回一个字符串。 如果key的值不是String ,则返回null
        参数
        key - 指定字符串的 Object
        结果
        String
        异常
        NullPointerException - 如果 keynull
      • getString

        public static String getString​(Object key,
                                       Locale l)
        返回适用于给定语言环境的默认值的字符串。 如果key的值不是String ,则返回null
        参数
        key - 指定字符串的 Object
        l - 需要字符串的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        String
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getInt

        public static int getInt​(Object key)
        返回默认值的整数。 如果key的值不是Integer ,或者不存在,则返回0
        参数
        key - 指定int的 Object
        结果
        int
        异常
        NullPointerException - 如果 keynull
      • getInt

        public static int getInt​(Object key,
                                 Locale l)
        返回适合给定语言环境的默认值的整数。 如果key的值不是Integer ,或者不存在,则返回0
        参数
        key - 指定int的 Object
        l - 需要int的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        int
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getBoolean

        public static boolean getBoolean​(Object key)
        返回与键值关联的默认值的布尔值。 如果未找到密钥或密钥不表示布尔值,则返回false
        参数
        key - 指定所需布尔值的键的 Object
        结果
        与键对应的布尔值
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getBoolean

        public static boolean getBoolean​(Object key,
                                         Locale l)
        返回默认值的布尔值,该默认值与键值和给定的Locale相关联。 如果未找到密钥或密钥不表示布尔值,则将返回false
        参数
        key - Object指定所需布尔值的键
        l - 需要布尔值的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        与键对应的布尔值
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getInsets

        public static Insets getInsets​(Object key)
        从默认值返回Insets对象。 如果key的值不是Insets ,则返回null
        参数
        key -一个 Object指定 Insets对象
        结果
        Insets对象
        异常
        NullPointerException - 如果 keynull
      • getInsets

        public static Insets getInsets​(Object key,
                                       Locale l)
        从适用于给定语言环境的默认值返回Insets对象。 如果key的值不是Insets ,则返回null
        参数
        key -一个 Object指定 Insets对象
        l - 需要该物体的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        Insets对象
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getDimension

        public static Dimension getDimension​(Object key)
        从默认值返回维度。 如果key的值不是Dimension ,则返回null
        参数
        key - 指定维对象的 Object
        结果
        Dimension对象
        异常
        NullPointerException - 如果 keynull
      • getDimension

        public static Dimension getDimension​(Object key,
                                             Locale l)
        返回适合给定语言环境的默认值的维度。 如果key的值不是Dimension ,则返回null
        参数
        key - 指定维对象的 Object
        l - 需要该对象的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        Dimension对象
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • get

        public static Object get​(Object key)
        从默认值返回一个对象。
        参数
        key - 指定所需对象的 Object
        结果
        Object
        异常
        NullPointerException - 如果 keynull
      • get

        public static Object get​(Object key,
                                 Locale l)
        从默认值返回适合给定语言环境的对象。
        参数
        key - 指定所需对象的 Object
        l - 需要该对象的Locale ; 有关如何处理null Locale详细信息,请参阅UIDefaults
        结果
        Object
        异常
        NullPointerException - 如果 keynull
        从以下版本开始:
        1.4
      • getUI

        public static ComponentUI getUI​(JComponent target)
        返回相应ComponentUI实施target 通常,这是getDefaults().getUI(target)的封面。 但是,如果已安装辅助外观,则首先在多路复用外观上默认调用getUI(target) ,如果为non-null ,则返回该值。
        参数
        target - JComponent返回 ComponentUI
        结果
        ComponentUI对象为 target
        异常
        NullPointerException - 如果 targetnull
        另请参见:
        UIDefaults.getUI(javax.swing.JComponent)
      • getLookAndFeelDefaults

        public static UIDefaults getLookAndFeelDefaults()
        从当前外观返回UIDefaults ,这是在安装外观时获得的。

        一般来说,开发人员应该使用从UIDefaults返回的getDefaults() 由于当前外观可能会存在某些值,因此更改从此方法返回的UIDefaults可能会产生意外结果。

        结果
        从目前的外观和感觉 UIDefaults
        另请参见:
        getDefaults()setLookAndFeel(LookAndFeel)LookAndFeel.getDefaults()
      • addPropertyChangeListener

        public static void addPropertyChangeListener​(PropertyChangeListener listener)
        PropertyChangeListener添加到侦听器列表。 监听器已注册所有属性。
        参数
        listener - 要添加的 PropertyChangeListener
        另请参见:
        PropertyChangeSupport
      • removePropertyChangeListener

        public static void removePropertyChangeListener​(PropertyChangeListener listener)
        从侦听器列表中删除PropertyChangeListener 这将删除为所有属性注册的PropertyChangeListener
        参数
        listener - 要删除的 PropertyChangeListener
        另请参见:
        PropertyChangeSupport
      • getPropertyChangeListeners

        public static PropertyChangeListener[] getPropertyChangeListeners()
        返回使用addPropertyChangeListener()添加到此UIManager的所有 PropertyChangeListener的数组。
        结果
        添加了所有 PropertyChangeListener或如果没有添加侦听器则为空数组
        从以下版本开始:
        1.4