public abstract class BasicLookAndFeel extends LookAndFeel implements Serializable
每个的ComponentUI
的前提是S BasicLookAndFeel
派生默认表其行为。 除非另有说明,否则此包中的每个ComponentUI
实现都将记录它们使用的一组默认值。 除非另有说明,默认值是在调用installUI
时安装的,并按照LookAndFeel中概述的LookAndFeel
安装默认值。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4版本开始,对所有JavaBeans的长期存储的支持已经添加到java.beans
包中。 请参阅XMLEncoder
。
Constructor and Description |
---|
BasicLookAndFeel() |
Modifier and Type | Method and Description |
---|---|
protected Action |
createAudioAction(Object key)
创建并返回一个
Action 用于播放声音。
|
protected ActionMap |
getAudioActionMap()
返回一个
ActionMap 这种外观的音频动作的
ActionMap 。
|
UIDefaults |
getDefaults()
返回外观和默认值。
|
protected void |
initClassDefaults(UIDefaults table)
填充
table 从映射
uiClassID 到ui类的完全限定名。
|
protected void |
initComponentDefaults(UIDefaults table)
填充
table 与默认的基本外观和感觉。
|
void |
initialize()
初始化外观和感觉。
|
protected void |
initSystemColorDefaults(UIDefaults table)
用系统颜色填充
table 。
|
protected void |
loadSystemColors(UIDefaults table, String[] systemColors, boolean useNative)
填充
table 与
name-color 成对
systemColors 。
|
protected void |
playSound(Action audioAction)
如有需要,可
actionPerformed
audioAction 播放声音。
|
void |
uninitialize()
初始化外观和感觉。
|
getDescription, getDesktopPropertyValue, getDisabledIcon, getDisabledSelectedIcon, getID, getLayoutStyle, getName, getSupportsWindowDecorations, installBorder, installColors, installColorsAndFont, installProperty, isNativeLookAndFeel, isSupportedLookAndFeel, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, provideErrorFeedback, toString, uninstallBorder
public UIDefaults getDefaults()
UIDefaults
被调用,从而,填充initClassDefaults
, initSystemColorDefaults
和initComponentDefaults
。
尽管此方法是公共的,但只能由调用UIManager
当外观被设置为当前的外观和后initialize
已被调用。
public void initialize()
UIManager
调用。
UIManager
调用getDefaults
之前调用此方法。
该方法旨在对外观进行任何初始化。
子类应该在这里进行任何一次性设置,而不是在静态初始化器中进行任何一次性设置,因为可以加载外观和感觉类对象,以发现isSupportedLookAndFeel()
返回false
。
public void uninitialize()
UIManager
调用。
例如,当外观和感觉被改变时, UIManager.setLookAndFeel
调用这个。
子类可以选择在这里释放一些资源。
protected void initClassDefaults(UIDefaults table)
table
,其映射关系从uiClassID
到ui类的完全限定名称。
特定uiClassID
值为"javax.swing.plaf.basic.Basic + uiClassID"
。
例如, uiClassID
TreeUI
的值是"javax.swing.plaf.basic.BasicTreeUI"
。
table
- 添加条目的
UIDefaults
实例
NullPointerException
- 如果
table
是
null
LookAndFeel
, getDefaults()
protected void initSystemColorDefaults(UIDefaults table)
table
。
这将创建一个name-color
对的数组,并调用loadSystemColors
。
该名称是一个String
,对应于SystemColor
类中静态SystemColor
字段之一的SystemColor
。 为每个这样的SystemColor
字段创建一个名称 - 颜色对。
color
对应于String
所理解的十六进制Color.decode
。 例如, name-color
对之一是"desktop"-"#005C5C"
。 这对应于SystemColor
字段desktop
,颜色值为new Color(0x005C5C)
。
以下显示了两个name-color
对:
String[] nameColorPairs = new String[] {
"desktop", "#005C5C",
"activeCaption", "#000080" };
loadSystemColors(table, nameColorPairs, isNativeLookAndFeel());
如前所述,这将使用提供的table
和name-color
对数组来调用loadSystemColors
。
loadSystemColors
的最后一个参数表示是否应使用SystemColor
中的字段值。
该方法将isNativeLookAndFeel()
的值作为最后一个参数传递给loadSystemColors
。
table
-
UIDefaults
对象的值被添加到
NullPointerException
- 如果
table
是
null
SystemColor
, getDefaults()
, loadSystemColors(javax.swing.UIDefaults, java.lang.String[], boolean)
protected void loadSystemColors(UIDefaults table, String[] systemColors, boolean useNative)
table
中使用name-color
对systemColors
。
有关systemColors的格式的详细信息,请参阅systemColors
。
一个条目添加到table
每个的name-color
成对systemColors
。 输入键是name
对的name-color
。
该条目的值对应于color
对的name-color
。 条目的值以两种方式之一计算。 使用任一方法,值始终为ColorUIResource
。
如果useNative
是false
,该color
通过使用创建Color.decode
的转换String
到Color
。 如果decode
无法将String
转换成Color
( NumberFormatException
被抛出),则使用黑色ColorUIResource
。
如果useNative
是true
时, color
是字段中的值SystemColor
具有相同名称为name
所述的name-color
对。 如果该字段无效,则使用黑色ColorUIResource
。
table
- 添加了值的
UIDefaults
对象
systemColors
-
name-color
对阵列,如
initSystemColorDefaults(UIDefaults)
所述
useNative
- 是否从
SystemColor
或
Color.decode
获得颜色
NullPointerException
- 如果systemColors
是null
;
或systemColors
不为空,而table
为null
;
或者name-color
对的名字之一是null
;
或useNative
是false
和colors
对的name-color
是null
ArrayIndexOutOfBoundsException
- 如果
useNative
是
false
和
systemColors.length
是奇数
initSystemColorDefaults(javax.swing.UIDefaults)
, SystemColor
, Color.decode(String)
protected void initComponentDefaults(UIDefaults table)
table
与默认的基本外观和感觉。
table
- 要添加的值为
UIDefaults
NullPointerException
- 如果
table
是
null
protected ActionMap getAudioActionMap()
ActionMap
这种外观的音频动作的ActionMap
。
返回的ActionMap
包含Actions
,其具有呈现听觉提示的能力。 这些听觉线索映射到用户和系统活动,可能对最终用户了解(例如出现对话框)有用。
在适当的时候, ComponentUI
负责在Action
中获得ActionMap
并将其传递给playSound
。
该方法首先查找该ActionMap
使用密钥的缺省值"AuditoryCues.actionMap"
。
如果值为non-null
,则返回。 如果默认值"AuditoryCues.actionMap"
是null
,默认值"AuditoryCues.cueList"
是non-null
,一个ActionMapUIResource
创建和填充。 群体通过遍历每个的元件的完成"AuditoryCues.cueList"
阵列,并调用createAudioAction()
创建Action
用于每个元素。 所得到的Action
被放置在ActionMapUIResource
,使用数组元素作为关键。 例如,如果"AuditoryCues.cueList"
数组包含单元素, "audioKey"
,所述ActionMapUIResource
被创建,然后通过填充方式actionMap.put(cueList[0], createAudioAction(cueList[0]))
。
如果默认值"AuditoryCues.actionMap"
为null
,默认值"AuditoryCues.cueList"
为null
,则创建一个空的ActionMapUIResource
。
Actions
负责播放听觉线索
ClassCastException
- 如果默认值
"AuditoryCues.actionMap"
不是
ActionMap
,或默认值
"AuditoryCues.cueList"
不是
Object[]
createAudioAction(java.lang.Object)
,
playSound(Action)
protected Action createAudioAction(Object key)
Action
用于播放声音。
如果key
为non-null
,则使用默认值Action
创建一个key
。 该值表示声音资源时加载actionPerformed
是在调用Action
。 声音资源被加载到byte[]
途经getClass().getResourceAsStream()
。
key
- 识别音频动作的键
Action
用于播放源,或
null
如果
key
是
null
playSound(Action)
protected void playSound(Action audioAction)
actionPerformed
audioAction
播放声音。
所述actionPerformed
如果值方法被调用"AuditoryCues.playList"
默认是non-null
Object[]
含有String
条目等于的名称audioAction
。
audioAction
- 知道如何呈现与正在发生的系统或用户活动相关联的音频的动作;
值为null
,被忽略
ClassCastException
- 如果
audioAction
是
non-null
,默认值
"AuditoryCues.playList"
不是
Object[]