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.