- 所有已实现的接口:
-
Serializable
- 直接已知的子类:
-
MetalLookAndFeel
,SynthLookAndFeel
BasicLookAndFeel
提供的每个 ComponentUI
都从默认表中获取其行为。除非另有说明,否则此包中的每个 ComponentUI
实现都记录了它们使用的默认值集。除非另有说明,默认值在调用 installUI
时安装,并遵循 LookAndFeel
中关于安装默认值的建议。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到 java.beans
包中。请参阅 XMLEncoder
。
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Action
createAudioAction
(Object key) 创建并返回用于播放声音的Action
。protected ActionMap
返回包含此外观的音频操作的ActionMap
。返回外观的默认值。protected void
initClassDefaults
(UIDefaults table) 使用从uiClassID
到ui类的完全限定名称的映射填充table
。protected void
initComponentDefaults
(UIDefaults table) 使用基本外观的默认值填充table
。protected void
使用系统颜色填充table
。protected void
loadSystemColors
(UIDefaults table, String[] systemColors, boolean useNative) 使用systemColors
中的name-color
对填充table
。protected void
如有必要,调用audioAction
上的actionPerformed
来播放声音。Methods declared in class javax.swing.LookAndFeel
getDescription, getDesktopPropertyValue, getDisabledIcon, getDisabledSelectedIcon, getID, getLayoutStyle, getName, getSupportsWindowDecorations, initialize, installBorder, installColors, installColorsAndFont, installProperty, isNativeLookAndFeel, isSupportedLookAndFeel, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, provideErrorFeedback, toString, uninitialize, uninstallBorder
-
Constructor Details
-
BasicLookAndFeel
protected BasicLookAndFeel()子类调用的构造函数。
-
-
Method Details
-
getDefaults
返回外观的默认值。返回的UIDefaults
是通过按顺序调用initClassDefaults
、initSystemColorDefaults
和initComponentDefaults
来填充的。虽然此方法是公共的,但应仅在将外观设置为当前外观并在调用
initialize
后由UIManager
调用。- 覆盖:
-
getDefaults
在类LookAndFeel
中 - 返回:
- 外观的默认值
- 参见:
-
initClassDefaults
使用从uiClassID
到ui类的完全限定名称的映射填充table
。特定uiClassID
的值为"javax.swing.plaf.basic.Basic + uiClassID"
。例如,TreeUI
的值为"javax.swing.plaf.basic.BasicTreeUI"
。- 参数:
-
table
- 要添加条目的UIDefaults
实例 - 抛出:
-
NullPointerException
- 如果table
为null
- 参见:
-
initSystemColorDefaults
使用系统颜色填充table
。这将创建一个name-color
对的数组并调用loadSystemColors
。名称是一个
String
,对应于SystemColor
类中静态SystemColor
字段的名称。为每个这样的SystemColor
字段创建一个name-color
对。color
对应于由Color.decode
理解的十六进制String
。例如,一个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
- 参见:
-
loadSystemColors
使用systemColors
中的name-color
对填充table
。有关systemColors
格式的详细信息,请参阅initSystemColorDefaults(UIDefaults)
。systemColors
中的每个name-color
对在table
中添加一个条目。name-color
对的name
。name-color
对的color
。条目的值通过以下两种方式之一计算。无论哪种方法,值始终为ColorUIResource
。useNative
为false
,则通过使用Color.decode
将String
转换为Color
来创建color
。如果decode
无法将String
转换为Color
(抛出NumberFormatException
),则使用黑色的ColorUIResource
。useNative
为true
,则color
是与name-color
对的name
相同的SystemColor
中的字段值。如果字段无效,则使用黑色的ColorUIResource
。- 参数:
-
table
- 要添加值的UIDefaults
对象 -
systemColors
- 如initSystemColorDefaults(UIDefaults)
中所述的name-color
对数组 -
useNative
- 颜色是从SystemColor
还是Color.decode
获取 - 抛出:
-
NullPointerException
- 如果systemColors
为null
;或systemColors
不为空,且table
为null
;或name-color
对的名称之一为null
;或useNative
为false
且name-color
对的color
之一为null
-
ArrayIndexOutOfBoundsException
- 如果useNative
为false
且systemColors.length
为奇数 - 参见:
-
initComponentDefaults
使用基本外观的默认值填充table
。- 参数:
-
table
- 要添加值的UIDefaults
- 抛出:
-
NullPointerException
- 如果table
为null
-
getAudioActionMap
返回一个包含此外观的音频操作的ActionMap
。返回的
ActionMap
包含体现渲染听觉提示能力的Actions
。这些听觉提示映射到用户和系统活动,对于最终用户了解这些活动可能是有用的(例如对话框出现)。在适当的时候,
ComponentUI
负责从ActionMap
中获取一个Action
并将其传递给playSound
。此方法首先使用键
"AuditoryCues.actionMap"
从默认值中查找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
的ActionMap - 抛出:
-
ClassCastException
- 如果默认"AuditoryCues.actionMap"
的值不是ActionMap
,或默认"AuditoryCues.cueList"
的值不是Object[]
- 自:
- 1.4
- 参见:
-
createAudioAction
创建并返回用于播放声音的Action
。如果
key
为non-null
,则使用键key
从默认值创建一个Action
。该值标识在Action
上调用actionPerformed
时要加载的声音资源。声音资源通过getClass().getResourceAsStream()
加载到一个byte[]
中。- 参数:
-
key
- 标识音频操作的键 - 返回:
-
用于播放源的
Action
,如果key
为null
则返回null
- 自:
- 1.4
- 参见:
-
playSound
如有必要,调用audioAction
上的actionPerformed
来播放声音。如果默认"AuditoryCues.playList"
的值是包含与audioAction
名称相等的String
条目的non-null
Object[]
,则调用actionPerformed
方法。- 参数:
-
audioAction
- 一个知道如何渲染与正在发生的系统或用户活动相关的音频的Action;如果为null
,则忽略 - 抛出:
-
ClassCastException
- 如果audioAction
为non-null
且默认"AuditoryCues.playList"
的值不是Object[]
- 自:
- 1.4
-