public class UIManager extends Object implements Serializable
UIManager管理当前的外观和感觉,一组可用的外观和感觉, PropertyChangeListeners ,当外观和感觉的变化,外观默认,以及获取各种默认值的便捷方法通知。
LookAndFeel的实例LookAndFeel其传递给setLookAndFeel 。
以下示例说明了设置外观和感觉的系统外观:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
以下示例说明了根据类名设置外观:
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
一旦外观和感觉被改变,就updateUI在所有JComponents上调用JComponents 。
方法SwingUtilities.updateComponentTreeUI(java.awt.Component)使得容易将updateUI应用于updateUI层次结构。
详情请参考
更改外观后,未调用updateUI的确切行为是未指定的。
很可能收到意外的例外,绘画问题或更糟。
swing.defaultlaf为non-null ,则使用其值作为默认的外观和类别名称。 Properties文件swing.properties并包含密钥swing.defaultlaf ,则使用其值作为默认的外观和类别名称。 检查swing.properties的位置可能会根据Java平台的实现而有所不同。 通常情况下, swing.properties文件位于lib子目录Java安装目录中。 有关进一步细节,请参阅实施的发行说明。 UIManager管理三套UIDefaults 。
为了,它们是:
setLookAndFeel()被调用)。 外观和默认值可以使用getLookAndFeelDefaults()方法获得。 get方法会导致检查每个默认值,按顺序返回第一个non-null值。
例如,调用UIManager.getString("Table.foreground")会导致首先检查开发人员的默认值。
如果开发人员默认值为"Table.foreground" ,则返回值,否则将检查外观和默认值,后跟系统默认值。
请注意, getDefaults返回一个getDefaults的自定义实例, UIDefaults内置了此分辨率逻辑。 例如, UIManager.getDefaults().getString("Table.foreground")相当于UIManager.getString("Table.foreground") 。 两者都使用刚刚描述的算法来解决。 在许多地方,文档使用默认值来引用具有UIDefaults的分辨率逻辑的UIDefaults的自定义实例。
当外观和感觉改变时, UIManager改变外观和默认值; 开发人员和系统默认值不被改变UIManager以任何方式。
一组特定的外观和感觉支持的默认值由该外观和感觉定义和记录。 另外,每个外观和感觉,或ComponentUI提供的外观和感觉,可以在其生命周期的不同时间访问默认值。 有些外观和感觉可能会积极地查看默认值,因此更改默认值可能在安装外观后可能没有影响。 其他外观和感觉可能会懒惰地访问默认值,以便更改默认值可能会影响现有的外观和感觉。 最后,其他外观和感觉可能无法以默认方式配置自己。 通常情况下,外观和感觉预期会出现某些默认值,因此一般来说, ComponentUI由一种外观和感觉提供,将无法与另一种外观和感觉一起使用。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已经添加到java.beans包中。 请参阅XMLEncoder 。
| Modifier and Type | Class and Description |
|---|---|
static class |
UIManager.LookAndFeelInfo
提供有关安装的LookAndFeel的
LookAndFeel ,以便配置菜单或初始应用程序设置。
|
| Constructor and Description |
|---|
UIManager() |
| Modifier and Type | Method and Description |
|---|---|
static void |
addAuxiliaryLookAndFeel(LookAndFeel laf)
在辅助外观和感觉列表中添加一个
LookAndFeel 。
|
static void |
addPropertyChangeListener(PropertyChangeListener listener)
添加一个
PropertyChangeListener到监听器列表。
|
static Object |
get(Object key)
从默认值返回一个对象。
|
static Object |
get(Object key, Locale l)
从适用于给定语言环境的默认值返回一个对象。
|
static LookAndFeel[] |
getAuxiliaryLookAndFeels()
返回辅助外观和感觉的列表(可以是
null )。
|
static boolean |
getBoolean(Object key)
从与键值相关联的默认值返回一个布尔值。
|
static boolean |
getBoolean(Object key, Locale l)
从与键值相关联的默认值和给定的
Locale返回一个布尔值。
|
static Border |
getBorder(Object key)
从默认值返回一个边框。
|
static Border |
getBorder(Object key, Locale l)
从适用于给定语言环境的默认值返回一个边框。
|
static Color |
getColor(Object key)
从默认值返回颜色。
|
static Color |
getColor(Object key, Locale l)
从适用于给定语言环境的默认值返回颜色。
|
static String |
getCrossPlatformLookAndFeelClassName()
返回实现默认跨平台外观的
LookAndFeel类的名称--Java Look and Feel(JLF)。
|
static UIDefaults |
getDefaults()
返回默认值。
|
static Dimension |
getDimension(Object key)
从默认值返回维度。
|
static Dimension |
getDimension(Object key, Locale l)
从适用于给定语言环境的默认值返回维度。
|
static Font |
getFont(Object key)
从默认值返回一个字体。
|
static Font |
getFont(Object key, Locale l)
从适用于给定语言环境的默认值返回一个字体。
|
static Icon |
getIcon(Object key)
从默认值返回一个
Icon 。
|
static Icon |
getIcon(Object key, Locale l)
从适用于给定语言环境的默认值返回
Icon 。
|
static Insets |
getInsets(Object key)
从默认值返回一个
Insets对象。
|
static Insets |
getInsets(Object key, Locale l)
从适用于给定语言环境的默认值返回一个
Insets对象。
|
static UIManager.LookAndFeelInfo[] |
getInstalledLookAndFeels()
返回一个
LookAndFeelInfo s的数组,
LookAndFeelInfo
LookAndFeel可用的LookAndFeel实现。
|
static int |
getInt(Object key)
从默认值返回一个整数。
|
static int |
getInt(Object key, Locale l)
从适用于给定语言环境的默认值返回一个整数。
|
static LookAndFeel |
getLookAndFeel()
返回目前的外观或
null 。
|
static UIDefaults |
getLookAndFeelDefaults()
从当前的外观和感觉返回
UIDefaults ,这是在安装外观时获得的。
|
static PropertyChangeListener[] |
getPropertyChangeListeners()
返回使用addPropertyChangeListener()添加到此UIManager的所有
PropertyChangeListener的数组。
|
static String |
getString(Object key)
从默认值返回一个字符串。
|
static String |
getString(Object key, Locale l)
从适用于给定语言环境的默认值返回一个字符串。
|
static String |
getSystemLookAndFeelClassName()
返回实现本机系统外观的
LookAndFeel类的名称,如果有的话,否则为默认的跨平台
LookAndFeel类的名称。
|
static ComponentUI |
getUI(JComponent target)
返回相应
ComponentUI实施
target 。
|
static void |
installLookAndFeel(String name, String className)
添加指定的外观和感觉的一套可用的外观和感觉。
|
static void |
installLookAndFeel(UIManager.LookAndFeelInfo info)
添加指定的外观和感觉的一套可用的外观和感觉。
|
static Object |
put(Object key, Object value)
在开发人员的默认值中存储一个对象。
|
static boolean |
removeAuxiliaryLookAndFeel(LookAndFeel laf)
从辅助外观和感觉列表中删除
LookAndFeel 。
|
static void |
removePropertyChangeListener(PropertyChangeListener listener)
从侦听器列表中删除一个
PropertyChangeListener 。
|
static void |
setInstalledLookAndFeels(UIManager.LookAndFeelInfo[] infos)
设置一组可用的外观和感觉。
|
static void |
setLookAndFeel(LookAndFeel newLookAndFeel)
将当前的外观设置为
newLookAndFeel 。
|
static void |
setLookAndFeel(String className)
使用当前线程的上下文类加载器加载由给定类名指定的
LookAndFeel ,并将其传递给
setLookAndFeel(LookAndFeel) 。
|
public static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels()
LookAndFeel LookAndFeel实现的数组LookAndFeelInfo s。
应用LookAndFeelInfo可以使用LookAndFeelInfo对象来构建用户的外观选项菜单,或者确定在启动时设置的外观和感觉。
为了避免创建大量LookAndFeel对象的惩罚, LookAndFeelInfo维护类的名称为LookAndFeel类,而不是实际的LookAndFeel实例。
下面的示例说明设置当前外观和实例感受LookAndFeelInfo :
UIManager.setLookAndFeel(info.getClassName());
LookAndFeelInfo对象
setLookAndFeel(javax.swing.LookAndFeel)
public static void setInstalledLookAndFeels(UIManager.LookAndFeelInfo[] infos) throws SecurityException
LookAndFeelInfos都是non-null ,但强烈建议在infos数组中仅提供non-null值。
infos - 一组
LookAndFeelInfo对象,指定可用的外观和感觉
NullPointerException - 如果
infos是
null
SecurityException
getInstalledLookAndFeels()
public static void installLookAndFeel(UIManager.LookAndFeelInfo info)
null info ,但强烈建议使用non-null值。
info - 一个
LookAndFeelInfo对象,命名外观和感觉,并标识实现它的类
setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
public static void installLookAndFeel(String name, String className)
non-null值。
name - 外观的描述性名称
className - 实现外观的类的名称
setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
public static LookAndFeel getLookAndFeel()
null 。
null
setLookAndFeel(javax.swing.LookAndFeel)
public static void setLookAndFeel(LookAndFeel newLookAndFeel) throws UnsupportedLookAndFeelException
newLookAndFeel 。
如果目前的外观和感觉是non-null uninitialize被调用就可以了。
如果newLookAndFeel是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()
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
public static String getSystemLookAndFeelClassName()
LookAndFeel类的名称,如果有的话,否则为默认的跨平台LookAndFeel类的名称。
可以通过设置swing.systemlaf系统属性来覆盖此值。
String的的
LookAndFeel类
setLookAndFeel(javax.swing.LookAndFeel) ,
getCrossPlatformLookAndFeelClassName()
public static String getCrossPlatformLookAndFeelClassName()
LookAndFeel类的名称--Java Look and Feel(JLF)。
可以通过设置swing.crossplatformlaf系统属性来覆盖此值。
setLookAndFeel(javax.swing.LookAndFeel) ,
getSystemLookAndFeelClassName()
public static UIDefaults getDefaults()
UIDefaults默认值的
UIDefaults对象
public static Font getFont(Object key)
key的值不是Font ,则返回null 。
key - 一个
Object字体的
Object
Font对象
NullPointerException - 如果
key是
null
public static Font getFont(Object key, Locale l)
key的值不是Font ,则返回null 。
key - 一个
Object字体的
Object
l - 需要字体的Locale ;
参考UIDefaults的细节上如何null Locale被处理
Font对象
NullPointerException - 如果
key是
null
public static Color getColor(Object key)
key的值不是Color ,则返回null 。
key - 一个
Object颜色的
Object
Color对象
NullPointerException - 如果
key是
null
public static Color getColor(Object key, Locale l)
key的值不是Color ,则返回null 。
key - 一个
Object颜色的
Object
l - 需要颜色的Locale ;
参考UIDefaults的细节上如何null Locale被处理
Color对象
NullPointerException - 如果
key是
null
public static Icon getIcon(Object key)
Icon 。
如果key的值不是Icon ,则返回null 。
key - 一个
Object图标的
Object
Icon对象
NullPointerException - 如果
key是
null
public static Icon getIcon(Object key, Locale l)
Icon 。
如果key的值不是Icon ,则返回null 。
key - 一个
Object图标的
Object
l - 需要图标的Locale ;
参考UIDefaults的细节上如何null Locale被处理
Icon对象
NullPointerException - 如果
key是
null
public static Border getBorder(Object key)
key的值不是Border ,则返回null 。
key - 一个
Object边框的
Object
Border对象
NullPointerException - 如果
key是
null
public static Border getBorder(Object key, Locale l)
key的值不是Border ,则返回null 。
key - 一个
Object边框的
Object
l - 需要边界的Locale ;
参考UIDefaults的细节上如何null Locale被处理
Border对象
NullPointerException - 如果
key是
null
public static String getString(Object key)
key的值不是String ,则返回null 。
key - 一个
Object字符串的
Object
String
NullPointerException - 如果
key是
null
public static String getString(Object key, Locale l)
key的值不是String ,则返回null 。
key - 一个
Object字符串的
Object
l - 要求字符串的Locale ;
参考UIDefaults的细节上如何null Locale被处理
String
NullPointerException - 如果
key是
null
public static int getInt(Object key)
key的值不是Integer ,或不存在,则返回0 。
key - 一个
Object int的
Object
NullPointerException - 如果
key是
null
public static int getInt(Object key, Locale l)
key的值不是Integer ,或不存在,则返回0 。
key - 一个
Object int的
Object
l - 需要int的Locale ;
参考UIDefaults的细节上如何null Locale被处理
NullPointerException - 如果
key是
null
public static boolean getBoolean(Object key)
false 。
key - 一个
Object所需布尔值的键的
Object
NullPointerException - 如果
key是
null
public static boolean getBoolean(Object key, Locale l)
Locale返回一个布尔值。
如果未找到该键或该键不表示一个布尔值,那么将返回false 。
key - 一个
Object所需布尔值的键的
Object
l - 需要布尔值的Locale ;
参考UIDefaults的细节上如何null Locale被处理
NullPointerException - 如果
key是
null
public static Insets getInsets(Object key)
Insets对象。
如果key的值不是Insets ,则返回null 。
key - 一个
Object
Insets对象的
Insets
Insets对象
NullPointerException - 如果
key是
null
public static Insets getInsets(Object key, Locale l)
Insets对象。
如果key的值不是Insets ,则返回null 。
key - 一个
Object
Insets对象的
Insets
l - 需要该对象的Locale ;
参考UIDefaults的细节上如何null Locale被处理
Insets对象
NullPointerException - 如果
key是
null
public static Dimension getDimension(Object key)
key的值不是Dimension ,则返回null 。
key - 一个
Object维度对象的Object
Dimension对象
NullPointerException - 如果
key是
null
public static Dimension getDimension(Object key, Locale l)
key的值不是Dimension ,则返回null 。
key - 一个
Object维度对象的Object
l - 需要该对象的Locale ;
参考UIDefaults的细节上如何null Locale被处理
Dimension对象
NullPointerException - 如果
key是
null
public static Object get(Object key)
key - 指定所需对象的
Object
Object
NullPointerException - 如果
key是
null
public static Object get(Object key, Locale l)
key - 一个
Object所需对象的
Object
l - 需要该对象的Locale ;
参考UIDefaults的细节上如何null Locale被处理
Object
NullPointerException - 如果
key是
null
public static Object put(Object key, Object value)
getDefaults().put(key, value)的封面方法。
这只会影响开发者的默认值,而不是系统或外观和默认值。
key - 一个
Object检索关键字的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)
public static ComponentUI getUI(JComponent target)
ComponentUI实施target 。
通常,这是getDefaults().getUI(target) 。
但是,如果安装了辅助外观,则首先调用getUI(target)用外观和默认值non-null ,如果为non-null ,则返回该值。
target -
JComponent返回
ComponentUI为
ComponentUI对象为
target
NullPointerException - 如果
target是
null
UIDefaults.getUI(javax.swing.JComponent)
public static UIDefaults getLookAndFeelDefaults()
UIDefaults ,这是在安装外观时获得的。
一般来说,开发者应该使用从UIDefaults返回的getDefaults() 。 由于当前的外观和感觉可能会导致某些值存在,因此更改从该方法返回的UIDefaults可能会有意想不到的结果。
UIDefaults从目前的外观和感觉
getDefaults() ,
setLookAndFeel(LookAndFeel) ,
LookAndFeel.getDefaults()
public static void addAuxiliaryLookAndFeel(LookAndFeel laf)
LookAndFeel添加到辅助外观和感觉列表中。
辅助外观和感觉告诉复用外观,创建多路复用UI时,除了默认的LookAndFeel类之外,还要使用组件实例的其他LookAndFeel类。
更改只有在创建新的UI类或在组件实例上更改默认外观时才会生效。
注意这些与安装的外观和感觉不一样。
laf -
LookAndFeel对象
removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel) ,
setLookAndFeel(javax.swing.LookAndFeel) ,
getAuxiliaryLookAndFeels() ,
getInstalledLookAndFeels()
public static boolean removeAuxiliaryLookAndFeel(LookAndFeel laf)
LookAndFeel 。
辅助外观和感觉告诉复用外观和创建组合实例的其他LookAndFeel类除了默认的LookAndFeel类之外, LookAndFeel创建多路复用UI。
更改只有在创建新的UI类或在组件实例上更改默认外观时才会生效。
注意这些与安装的外观和感觉不一样。
LookAndFeel从列表中删除,则为true
removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel) ,
getAuxiliaryLookAndFeels() ,
setLookAndFeel(javax.swing.LookAndFeel) ,
getInstalledLookAndFeels()
public static LookAndFeel[] getAuxiliaryLookAndFeels()
null )。
辅助外观和感觉告诉复用外观和创建组件实例的其他LookAndFeel类,除了创建复用UI之外的默认LookAndFeel类。
注意这些与安装的外观和感觉不一样。
LookAndFeel s或
null
addAuxiliaryLookAndFeel(javax.swing.LookAndFeel) ,
removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel) ,
setLookAndFeel(javax.swing.LookAndFeel) ,
getInstalledLookAndFeels()
public static void addPropertyChangeListener(PropertyChangeListener listener)
PropertyChangeListener到侦听器列表。
所有属性都注册了监听器。
listener - 要添加的
PropertyChangeListener
PropertyChangeSupport
public static void removePropertyChangeListener(PropertyChangeListener listener)
PropertyChangeListener 。
这消除了一个PropertyChangeListener已注册的所有属性。
listener - 要删除的
PropertyChangeListener
PropertyChangeSupport
public static PropertyChangeListener[] getPropertyChangeListeners()
PropertyChangeListener的数组。
PropertyChangeListener被添加或一个空的数组,如果没有听众被添加
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.