- java.lang.Object
-
- javax.swing.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的确切行为未指定。 很可能会收到意外的异常,绘画问题或更糟。默认外观
用于默认外观的类按以下方式选择:- 如果系统属性
swing.defaultlaf是non-null,non-null其值用作默认外观类名。 - 如果
Properties文件swing.properties存在且包含密钥swing.defaultlaf,swing.defaultlaf其值用作默认外观类名。 检查swing.properties的位置可能会有所不同,具体取决于Java平台的实现。 通常,swing.properties文件位于Java安装目录的conf子目录中。 有关更多详细信息,请参阅所用实现的发行说明。 - 否则使用跨平台的外观。
默认
UIManager管理三套UIDefaults。 按顺序,它们是:- 开发者默认值。 除了少数例外,Swing不会改变开发人员默认值; 这些是供开发人员修改和使用的。
- 外观默认。 外观和默认设置由安装时的外观作为当前外观提供(调用
setLookAndFeel())。 可以使用getLookAndFeelDefaults()方法获取外观默认值。 - 系统默认值。 系统默认值由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软件包中添加了对所有JavaBeansjava.beans长期存储的支持。 请参阅XMLEncoder。- 从以下版本开始:
- 1.2
- 另请参见:
- Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static classUIManager.LookAndFeelInfo提供有关已安装的LookAndFeel的一些信息,以便配置菜单或初始应用程序设置。
-
构造方法摘要
构造方法 构造器 描述 UIManager()
-
方法摘要
所有方法 静态方法 具体的方法 变量和类型 方法 描述 static voidaddAuxiliaryLookAndFeel(LookAndFeel laf)将LookAndFeel添加到辅助外观列表中。static voidaddPropertyChangeListener(PropertyChangeListener listener)将PropertyChangeListener添加到侦听器列表。static LookAndFeelcreateLookAndFeel(String name)创建由给定的L&F name名称指定的受支持的内置JavaLookAndFeel。static Objectget(Object key)从默认值返回一个对象。static Objectget(Object key, Locale l)从默认值返回适合给定语言环境的对象。static LookAndFeel[]getAuxiliaryLookAndFeels()返回辅助外观列表(可以是null)。static booleangetBoolean(Object key)返回与键值关联的默认值的布尔值。static booleangetBoolean(Object key, Locale l)从默认值返回一个布尔值,该默认值与键值和给定的Locale相关联。static BordergetBorder(Object key)从默认值返回边框。static BordergetBorder(Object key, Locale l)返回适合给定语言环境的默认值的边框。static ColorgetColor(Object key)返回默认值的颜色。static ColorgetColor(Object key, Locale l)返回适合给定语言环境的默认值的颜色。static StringgetCrossPlatformLookAndFeelClassName()返回实现默认跨平台外观的LookAndFeel类的名称 - Java外观(JLF)。static UIDefaultsgetDefaults()返回默认值。static DimensiongetDimension(Object key)从默认值返回维度。static DimensiongetDimension(Object key, Locale l)返回适合给定语言环境的默认值的维度。static FontgetFont(Object key)从默认值返回字体。static FontgetFont(Object key, Locale l)返回适合给定语言环境的默认值的字体。static IcongetIcon(Object key)从默认值返回Icon。static IcongetIcon(Object key, Locale l)从适用于给定语言环境的默认值返回Icon。static InsetsgetInsets(Object key)从默认值返回Insets对象。static InsetsgetInsets(Object key, Locale l)从适用于给定语言环境的默认值返回Insets对象。static UIManager.LookAndFeelInfo[]getInstalledLookAndFeels()返回LookAndFeelInfo的数组,表示当前可用的LookAndFeel实现。static intgetInt(Object key)返回默认值的整数。static intgetInt(Object key, Locale l)返回适合给定语言环境的默认值的整数。static LookAndFeelgetLookAndFeel()返回当前外观或null。static UIDefaultsgetLookAndFeelDefaults()从当前外观返回UIDefaults,这是在安装外观时获得的。static PropertyChangeListener[]getPropertyChangeListeners()返回使用addPropertyChangeListener()添加到此UIManager的所有PropertyChangeListener的数组。static StringgetString(Object key)从默认值返回一个字符串。static StringgetString(Object key, Locale l)返回适用于给定语言环境的默认值的字符串。static StringgetSystemLookAndFeelClassName()返回实现本机系统外观的LookAndFeel类的名称(如果有),否则返回默认跨平台LookAndFeel类的名称。static ComponentUIgetUI(JComponent target)返回相应ComponentUI实施target。static voidinstallLookAndFeel(String name, String className)将指定的外观添加到可用外观集中。static voidinstallLookAndFeel(UIManager.LookAndFeelInfo info)将指定的外观添加到可用外观集中。static Objectput(Object key, Object value)在开发人员默认值中存储对象。static booleanremoveAuxiliaryLookAndFeel(LookAndFeel laf)从辅助外观列表中删除LookAndFeel。static voidremovePropertyChangeListener(PropertyChangeListener listener)从侦听器列表中删除PropertyChangeListener。static voidsetInstalledLookAndFeels(UIManager.LookAndFeelInfo[] infos)设置可用外观的集合。static voidsetLookAndFeel(String className)使用当前线程的上下文类加载器加载由给定类名指定的LookAndFeel,并将其传递给setLookAndFeel(LookAndFeel)。static voidsetLookAndFeel(LookAndFeel newLookAndFeel)将当前外观设置为newLookAndFeel。
-
-
-
方法详细信息
-
getInstalledLookAndFeels
public static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels()
返回LookAndFeelInfo的数组,表示当前可用的LookAndFeel实现。 应用程序可以使用LookAndFeelInfo对象为用户构建外观选项菜单,或确定在启动时设置的外观。 为避免创建大量LookAndFeel对象的惩罚,LookAndFeelInfo维护LookAndFeel类的类名,而不是实际的LookAndFeel实例。以下示例说明了如何从
LookAndFeelInfo的实例设置当前外观:UIManager.setLookAndFeel(info.getClassName());- 结果
-
一组
LookAndFeelInfo对象 - 另请参见:
-
setLookAndFeel(javax.swing.LookAndFeel)
-
setInstalledLookAndFeels
public static void setInstalledLookAndFeels(UIManager.LookAndFeelInfo[] infos) throws SecurityException
设置可用外观的集合。 虽然此方法不检查以确保所有LookAndFeelInfos都是non-null,但强烈建议在infos阵列中仅提供non-null值。- 参数
-
infos- 一组LookAndFeelInfo对象,指定可用的外观 - 异常
-
NullPointerException- 如果infos是null -
SecurityException - 另请参见:
-
getInstalledLookAndFeels()
-
installLookAndFeel
public static void installLookAndFeel(UIManager.LookAndFeelInfo info)
将指定的外观添加到可用外观集中。 虽然此方法允许nullinfo,但强烈建议使用non-null值。- 参数
-
info- 一个LookAndFeelInfo对象,用于命名外观并标识实现它的类 - 另请参见:
-
setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
-
installLookAndFeel
public static void installLookAndFeel(String name, String className)
将指定的外观添加到可用外观集中。 虽然此方法不以任何方式检查参数,但强烈建议提供non-null值。- 参数
-
name- 外观的描述性名称 -
className- 实现外观的类的名称 - 另请参见:
-
setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
-
getLookAndFeel
public static LookAndFeel getLookAndFeel()
返回当前外观或null。- 结果
-
当前的外观,或
null - 另请参见:
-
setLookAndFeel(javax.swing.LookAndFeel)
-
createLookAndFeel
public static LookAndFeel createLookAndFeel(String name) throws UnsupportedLookAndFeelException
创建由给定的L&F name名称指定的受支持的内置JavaLookAndFeel。- 参数
-
name- 指定内置外观名称的String - 结果
-
内置的
LookAndFeel对象 - 异常
-
NullPointerException- 如果name是null -
UnsupportedLookAndFeelException- 如果找不到给定名称的内置JavaL&F,或者底层平台不支持它 - 从以下版本开始:
- 9
- 另请参见:
-
LookAndFeel.getName(),LookAndFeel.isSupportedLookAndFeel()
-
setLookAndFeel
public static void setLookAndFeel(LookAndFeel newLookAndFeel) throws UnsupportedLookAndFeelException
将当前外观设置为newLookAndFeel。 如果当前的外观和感觉是non-nulluninitialize调用就可以了。 如果newLookAndFeel是non-null,则在其上调用non-null,initialize调用getDefaults。 从newLookAndFeel.getDefaults()返回的默认值将替换先前外观中的默认值。 如果newLookAndFeel是null,则外观默认设置为null。值
null可用于将外观设置为null。 由于LookAndFeel所需的大多数Swing的运行,设置LookAndFeel至null强烈反对。这是一个JavaBeans绑定属性。
- 参数
-
newLookAndFeel-LookAndFeel进行安装 - 异常
-
UnsupportedLookAndFeelException- 如果newLookAndFeel是non-null和newLookAndFeel.isSupportedLookAndFeel()返回false - 另请参见:
-
getLookAndFeel()
-
setLookAndFeel
public static void setLookAndFeel(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException
使用当前线程的上下文类加载器加载由给定类名指定的LookAndFeel,并将其传递给setLookAndFeel(LookAndFeel)。- 参数
-
className- 一个字符串,指定实现外观的类的名称 - 异常
-
ClassNotFoundException- 如果LookAndFeel类 -
InstantiationException- 如果无法创建类的新实例 -
IllegalAccessException- 如果无法访问类或初始值设定项 -
UnsupportedLookAndFeelException- 如果lnf.isSupportedLookAndFeel()为假 -
ClassCastException- 如果className未标识扩展LookAndFeel的类 -
NullPointerException- 如果className是null
-
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- 如果key是null
-
getFont
public static Font getFont(Object key, Locale l)
返回适合给定语言环境的默认值的字体。 如果key的值不是Font,则返回null。- 参数
-
key- 指定字体的Object -
l- 需要字体的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
Font对象 - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getColor
public static Color getColor(Object key)
返回默认值的颜色。 如果key的值不是Color,则返回null。- 参数
-
key- 指定颜色的Object - 结果
-
Color对象 - 异常
-
NullPointerException- 如果key是null
-
getColor
public static Color getColor(Object key, Locale l)
返回适合给定语言环境的默认值的颜色。 如果key的值不是Color,则返回null。- 参数
-
key- 指定颜色的Object -
l- 需要颜色的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
Color对象 - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getIcon
public static Icon getIcon(Object key)
从默认值返回Icon。 如果key的值不是Icon,则返回null。- 参数
-
key- 指定图标的Object - 结果
-
Icon对象 - 异常
-
NullPointerException- 如果key是null
-
getIcon
public static Icon getIcon(Object key, Locale l)
从适用于给定语言环境的默认值返回Icon。 如果key的值不是Icon,则返回null。- 参数
-
key- 指定图标的Object -
l- 需要图标的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
Icon对象 - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getBorder
public static Border getBorder(Object key)
从默认值返回边框。 如果key的值不是Border,则返回null。- 参数
-
key- 指定边框的Object - 结果
-
Border对象 - 异常
-
NullPointerException- 如果key是null
-
getBorder
public static Border getBorder(Object key, Locale l)
返回适合给定语言环境的默认值的边框。 如果key的值不是Border,则返回null。- 参数
-
key- 指定边框的Object -
l- 需要边框的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
Border对象 - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getString
public static String getString(Object key)
从默认值返回一个字符串。 如果key的值不是String,则返回null。- 参数
-
key- 指定字符串的Object - 结果
-
String - 异常
-
NullPointerException- 如果key是null
-
getString
public static String getString(Object key, Locale l)
返回适用于给定语言环境的默认值的字符串。 如果key的值不是String,则返回null。- 参数
-
key- 指定字符串的Object -
l- 需要字符串的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
String - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getInt
public static int getInt(Object key)
返回默认值的整数。 如果key的值不是Integer,或者不存在,则返回0。- 参数
-
key- 指定int的Object - 结果
- int
- 异常
-
NullPointerException- 如果key是null
-
getInt
public static int getInt(Object key, Locale l)
返回适合给定语言环境的默认值的整数。 如果key的值不是Integer,或者不存在,则返回0。- 参数
-
key- 指定int的Object -
l- 需要int的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
- int
- 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getBoolean
public static boolean getBoolean(Object key)
返回与键值关联的默认值的布尔值。 如果未找到密钥或密钥不表示布尔值,则返回false。- 参数
-
key- 指定所需布尔值的键的Object - 结果
- 与键对应的布尔值
- 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getBoolean
public static boolean getBoolean(Object key, Locale l)
返回默认值的布尔值,该默认值与键值和给定的Locale相关联。 如果未找到密钥或密钥不表示布尔值,则将返回false。- 参数
-
key-Object指定所需布尔值的键 -
l- 需要布尔值的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
- 与键对应的布尔值
- 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getInsets
public static Insets getInsets(Object key)
从默认值返回Insets对象。 如果key的值不是Insets,则返回null。- 参数
-
key-一个Object指定Insets对象 - 结果
-
Insets对象 - 异常
-
NullPointerException- 如果key是null
-
getInsets
public static Insets getInsets(Object key, Locale l)
从适用于给定语言环境的默认值返回Insets对象。 如果key的值不是Insets,则返回null。- 参数
-
key-一个Object指定Insets对象 -
l- 需要该物体的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
Insets对象 - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
getDimension
public static Dimension getDimension(Object key)
从默认值返回维度。 如果key的值不是Dimension,则返回null。- 参数
-
key- 指定维对象的Object - 结果
-
Dimension对象 - 异常
-
NullPointerException- 如果key是null
-
getDimension
public static Dimension getDimension(Object key, Locale l)
返回适合给定语言环境的默认值的维度。 如果key的值不是Dimension,则返回null。- 参数
-
key- 指定维对象的Object -
l- 需要该对象的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
Dimension对象 - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
get
public static Object get(Object key)
从默认值返回一个对象。- 参数
-
key- 指定所需对象的Object - 结果
-
Object - 异常
-
NullPointerException- 如果key是null
-
get
public static Object get(Object key, Locale l)
从默认值返回适合给定语言环境的对象。- 参数
-
key- 指定所需对象的Object -
l- 需要该对象的Locale; 有关如何处理nullLocale详细信息,请参阅UIDefaults - 结果
-
Object - 异常
-
NullPointerException- 如果key是null - 从以下版本开始:
- 1.4
-
put
public static Object put(Object key, Object value)
在开发人员默认值中存储对象。 这是getDefaults().put(key, value)的封面方法。 这仅影响开发人员默认值,而不影响系统或外观默认值。- 参数
-
key- 指定检索关键字的Object -
value- 存储Object; 参考UIDefaults以了解如何null的处理 - 结果
-
Object由UIDefaults.put(java.lang.Object, java.lang.Object)返回 - 异常
-
NullPointerException- 如果key是null - 另请参见:
-
UIDefaults.put(java.lang.Object, java.lang.Object)
-
getUI
public static ComponentUI getUI(JComponent target)
返回相应ComponentUI实施target。 通常,这是getDefaults().getUI(target)的封面。 但是,如果已安装辅助外观,则首先在多路复用外观上默认调用getUI(target),如果为non-null,则返回该值。- 参数
-
target-JComponent返回ComponentUI - 结果
-
ComponentUI对象为target - 异常
-
NullPointerException- 如果target是null - 另请参见:
-
UIDefaults.getUI(javax.swing.JComponent)
-
getLookAndFeelDefaults
public static UIDefaults getLookAndFeelDefaults()
从当前外观返回UIDefaults,这是在安装外观时获得的。一般来说,开发人员应该使用从
UIDefaults返回的getDefaults()。 由于当前外观可能会存在某些值,因此更改从此方法返回的UIDefaults可能会产生意外结果。- 结果
-
从目前的外观和感觉
UIDefaults - 另请参见:
-
getDefaults(),setLookAndFeel(LookAndFeel),LookAndFeel.getDefaults()
-
addAuxiliaryLookAndFeel
public static void addAuxiliaryLookAndFeel(LookAndFeel laf)
将LookAndFeel添加到辅助外观列表中。 在创建多路复用UI时,除了默认的LookAndFeel类之外,辅助外观还可以告诉多路复用外观和组件实例的其他LookAndFeel类。 只有在创建新UI类或在组件实例上更改默认外观时,更改才会生效。请注意,这些与安装的外观并不相同。
- 参数
-
laf-LookAndFeel对象 - 另请参见:
-
removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel),setLookAndFeel(javax.swing.LookAndFeel),getAuxiliaryLookAndFeels(),getInstalledLookAndFeels()
-
removeAuxiliaryLookAndFeel
public static boolean removeAuxiliaryLookAndFeel(LookAndFeel laf)
从辅助外观列表中删除LookAndFeel。 辅助外观和感觉告诉多路复用外观在创建多路复用UI时,除了默认的LookAndFeel类之外,还要使用组件实例的其他LookAndFeel类。 只有在创建新UI类或在组件实例上更改默认外观时,更改才会生效。请注意,这些与安装的外观并不相同。
- 参数
-
laf- 要删除的LookAndFeel - 结果
-
如果已从列表中删除
LookAndFeeltrue - 另请参见:
-
removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel),getAuxiliaryLookAndFeels(),setLookAndFeel(javax.swing.LookAndFeel),getInstalledLookAndFeels()
-
getAuxiliaryLookAndFeels
public static LookAndFeel[] getAuxiliaryLookAndFeels()
返回辅助外观列表(可以是null)。 辅助外观告诉多路复用外观在创建多路复用UI时,除了默认的LookAndFeel类之外,还要使用组件实例的其他LookAndFeel类。请注意,这些与安装的外观并不相同。
- 结果
-
辅助列表
LookAndFeels或null - 另请参见:
-
addAuxiliaryLookAndFeel(javax.swing.LookAndFeel),removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel),setLookAndFeel(javax.swing.LookAndFeel),getInstalledLookAndFeels()
-
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
-
-