java.lang.Object javax.swing.UIManager
public class UIManager
UIManager
管理当前外观、可用外观集合、外观更改时被通知的 PropertyChangeListeners
、外观默认值以及获取各种默认值的便捷方法。
LookAndFeel
的实例并将它传递给
setLookAndFeel
。以下示例说明了如何将外观设置为系统外观:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());以下示例说明了如何根据类名称设置外观:
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");一旦更改了外观,则强制在所有
JComponent
上调用
updateUI
。
SwingUtilities.updateComponentTreeUI(java.awt.Component)
方法有助于方便地对包含层次结构应用
updateUI
。有关详细信息,请参阅它。没有指定更改外观后不调用
updateUI
的确切行为。很有可能接收到无法预料的异常、绘制问题或更坏的情况。
swing.defaultlaf
为非 null
,则将其值用作默认外观类名称。 Properties
文件 swing.properties
存在且包含键 swing.defaultlaf
,则将其值用作默认外观类名称。用来检查 swing.properties
的位置可能随 Java 平台的实现而不同。在 Sun 的实现中,该位置位于 ${java.home}/lib/swing.properties
中。有关更多信息,请参阅所用实现的发行说明。 UIManager
管理
UIDefault
的三个集合。它们分别是:
setLookAndFeel()
)时由该外观提供。使用 getLookAndFeelDefaults()
方法可以获得外观默认值。 get
方法都将导致检查每个默认值,按顺序返回第一个非
null
值。例如,调用
UIManager.getString("Table.foreground")
导致首先检查开发人员默认值。如果开发人员默认值包含
"Table.foreground"
的值,则返回该值,否则检查外观默认值,接着检查系统默认值。
要重点注意的是,getDefaults
返回 UIDefault
的一个自定义实例,此解析逻辑内置于其中。例如,UIManager.getDefaults().getString("Table.foreground")
等效于 UIManager.getString("Table.foreground")
。两者都使用刚才所描述的算法进行解析。在许多地方,该文档使用字默认值查阅 UIDefaults
的自定义实例,解析逻辑如前所述。
更改外观时,UIManager
只更改外观默认值;UIManager
不以任何方式更改开发人员和系统默认值。
该外观定义并记录特定外观支持的默认值集合。此外,每个外观或者外观所提供的 ComponentUI
在它们生命周期中的不同时间可以访问该默认值。某些外观可以强制查找默认值,这样在安装该外观后更改默认值可能无效。其他外观可以延迟访问默认值,这样对该默认值的更改可能对现有外观产生影响。最后,其他外观可能不会以任何方式根据默认表自我配置。虽然如此,但通常是外观期望特定默认值这种情况,这样在一般情况下,某个外观提供的 ComponentUI
不会对另一个外观起作用。
警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
嵌套类摘要 | |
---|---|
static class |
UIManager.LookAndFeelInfo 为了配置菜单或为了初始应用程序设置而提供关于已安装的 LookAndFeel 的少量信息。 |
构造方法摘要 | |
---|---|
UIManager() |
方法摘要 | |
---|---|
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() 返回实现默认的跨平台外观 -- Java Look and Feel (JLF) -- 的 LookAndFeel 类的名称。 |
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() 返回表示当前可用的 LookAndFeel 实现的 LookAndFeelInfo 数组。 |
static int |
getInt(Object key) 从默认值中返回一个整数。 |
static int |
getInt(Object key, Locale l) 从适合给定语言环境的默认值中返回一个整数。 |
static LookAndFeel |
getLookAndFeel() 返回当前外观或 null 。 |
static UIDefaults |
getLookAndFeelDefaults() 从当前外观返回 UIDefaults ,UIDefaults 在安装该外观时获得。 |
static PropertyChangeListener[] |
getPropertyChangeListeners() 返回添加到此 UIManager(具有 addPropertyChangeListener())的所有 PropertyChangeListener 的数组。 |
static String |
getString(Object key) 从默认值中返回一个字符串。 |
static String |
getString(Object key, Locale l) 从适合给定语言环境的默认值中返回一个字符串。 |
static String |
getSystemLookAndFeelClassName() 如果有实现本机系统外观的 LookAndFeel 类的名称,则返回该名称;否则返回默认的跨平台 LookAndFeel 类的名称。 |
static ComponentUI |
getUI(JComponent target) 返回 target 的适当 ComponentUI 实现。 |
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) 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public UIManager()
方法详细信息 |
---|
public static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels()
LookAndFeel
实现的
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
为
非 null
,因此建议最好在
infos
数组中只提供
非 null
值。
infos
- 指定可用外观的
LookAndFeelInfo
对象的集合
NullPointerException
- 如果
infos
为
null
SecurityException
getInstalledLookAndFeels()
public static void installLookAndFeel(UIManager.LookAndFeelInfo info)
null
info
,但建议最好使用
非 null
值。
info
- 命名外观并标识实现它的类的
LookAndFeelInfo
对象
setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
public static void installLookAndFeel(String name, String className)
非 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
。如果当前外观为
非 null
,则在其上调用
uninitialize
。如果
newLookAndFeel
为
非 null
,则在其上调用
initialize
,接着调用
getDefaults
。从
newLookAndFeel.getDefaults()
返回的默认值将替换以前外观的默认值。如果
newLookAndFeel
为
null
,则该外观默认值被设置为
null
。
null
值可用于将该外观设置为 null
。由于大多数 Swing 的运行都要求 LookAndFeel
,所以不建议将 LookAndFeel
设置为 null
。
这是一个 JavaBeans 绑定属性。
newLookAndFeel
- 要安装的
LookAndFeel
UnsupportedLookAndFeelException
- 如果
newLookAndFeel
为
非 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()
为 false
ClassCastException
- 如果
className
没有标识扩展
LookAndFeel
的类
public static String getSystemLookAndFeelClassName()
LookAndFeel
类的名称,则返回该名称;否则返回默认的跨平台
LookAndFeel
类的名称。可通过设置
swing.systemlaf
系统属性重写此值。
LookAndFeel
类的
String
setLookAndFeel(javax.swing.LookAndFeel)
,
getCrossPlatformLookAndFeelClassName()
public static String getCrossPlatformLookAndFeelClassName()
LookAndFeel
类的名称。可通过设置
swing.crossplatformlaf
系统属性重写此值。
setLookAndFeel(javax.swing.LookAndFeel)
,
getSystemLookAndFeelClassName()
public static UIDefaults getDefaults()
UIDefaults
对象
public static Font getFont(Object key)
key
的值不为
Font
,则返回
null
。
key
- 指定该字体的
Object
Font
对象
NullPointerException
- 如果
key
为
null
public static Font getFont(Object key, Locale l)
key
的值不为
Font
,则返回
null
。
key
- 指定该字体的
Object
l
- 需要该字体的
Locale
;有关如何处理
null
Locale
的详细信息,请参阅
UIDefaults
。
Font
对象
NullPointerException
- 如果
key
为
null
public static Color getColor(Object key)
key
的值不为
Color
,则返回
null
。
key
- 指定该颜色的
Object
Color
对象
NullPointerException
- 如果
key
为
null
public static Color getColor(Object key, Locale l)
key
的值不为
Color
,则返回
null
。
key
- 指定该颜色的
Object
l
- 需要该颜色的
Locale
;有关如何处理
null
Locale
的详细信息,请参阅
UIDefaults
Color
对象
NullPointerException
- 如果
key
为
null
public static Icon getIcon(Object key)
Icon
。如果
key
的值不为
Icon
,则返回
null
。
key
- 指定该图标的
Object
Icon
对象
NullPointerException
- 如果
key
为
null
public static Icon getIcon(Object key, Locale l)
Icon
。如果
key
的值不为
Icon
,则返回
null
。
key
- 指定该图标的
Object
l
- 需要该图标的
Locale
;有关如何处理
null
Locale
的详细信息,请参阅
UIDefaults
Icon
对象
NullPointerException
- 如果
key
为
null
public static Border getBorder(Object key)
key
的值不为
Border
,则返回
null
。
key
- 指定该边框的
Object
Border
对象
NullPointerException
- 如果
key
为
null
public static Border getBorder(Object key, Locale l)
key
的值不为
Border
,则返回
null
。
key
- 指定该边框的
Object
l
- 需要该边框的
Locale
;有关如何处理
null
Locale
的详细信息,请参阅
UIDefaults
Border
对象
NullPointerException
- 如果
key
为
null
public static String getString(Object key)
key
的值不为
String
,则返回
null
。
key
- 指定该字符串的
Object
String
NullPointerException
- 如果
key
为
null
public static String getString(Object key, Locale l)
key
的值不为
String
,则返回
null
。
key
- 指定该字符串的
Object
l
- 需要该字符串的
Locale
;有关如何处理
null
Locale
的详细信息,请参阅
UIDefaults
String
NullPointerException
- 如果
key
为
null
public static int getInt(Object key)
key
的值不为
Integer
或者不存在,则返回
0
。
key
- 指定该 int 值的
Object
NullPointerException
- 如果
key
为
null
public static int getInt(Object key, Locale l)
key
的值不为
Integer
或者不存在,则返回
0
。
key
- 指定该 int 值的
Object
l
- 需要该 int 值的
Locale
;有关如何处理
null
Locale
的详细信息,请参阅
UIDefaults
NullPointerException
- 如果
key
为
null
public static boolean getBoolean(Object key)
false
。
key
- 指定所需布尔值的键的
Object
NullPointerException
- 如果
key
为
null
public static boolean getBoolean(Object key, Locale l)
Locale
相关的默认值中返回一个布尔变量。如果找不到键或该键不表示布尔值,则返回
false
。
key
- 指定所需布尔值的键的
Object
l
- 需要该布尔变量的
Locale
;有关如何处理
null
Locale
的详细信息,请参阅
UIDefaults
NullPointerException
- 如果
key
为
null
public static Insets getInsets(Object key)
Insets
对象。如果
key
的值不为
Insets
,则返回
null
。
key
- 指定该
Insets
对象的
Object
Insets
对象
NullPointerException
- 如果
key
为
null
public static Insets getInsets(Object key,