- java.lang.Object
-
- javax.swing.LookAndFeel
-
- javax.swing.plaf.basic.BasicLookAndFeel
-
- All Implemented Interfaces:
-
Serializable
- 已知直接子类:
-
MetalLookAndFeel
,SynthLookAndFeel
public abstract class BasicLookAndFeel extends LookAndFeel implements Serializable
用于创建Swing的外观的基础类。ComponentUI
提供的BasicLookAndFeel
每一个从默认表中导出其行为。 除非另有说明,否则此包中的每个ComponentUI
实现都将记录它们使用的一组默认值。 除非另有说明默认值是在安装的时候installUI
被调用,并按照概述的建议LookAndFeel
安装的默认值。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到
java.beans
包中。 请参阅XMLEncoder
。- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 BasicLookAndFeel()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 protected Action
createAudioAction(Object key)
创建并返回一个用于播放声音的Action
。protected ActionMap
getAudioActionMap()
返回一个包含这种外观的音频动作的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()
初始化外观和感觉。-
Methods inherited from class javax.swing.LookAndFeel
getDescription, getDesktopPropertyValue, getDisabledIcon, getDisabledSelectedIcon, getID, getLayoutStyle, getName, getSupportsWindowDecorations, installBorder, installColors, installColorsAndFont, installProperty, isNativeLookAndFeel, isSupportedLookAndFeel, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, provideErrorFeedback, toString, uninstallBorder
-
-
-
-
方法详细信息
-
getDefaults
public UIDefaults getDefaults()
返回外观和默认值。 返回UIDefaults
被调用,从而,填充initClassDefaults
,initSystemColorDefaults
和initComponentDefaults
。虽然这种方法是公开的,但是当外观和感觉被设置为当前的外观并且在调用
initialize
之后,它应该仅由UIManager
调用。
-
initialize
public void initialize()
初始化外观和感觉。 虽然这种方法是公开的,但是只有当安装了外观和现在的外观时,才应该由UIManager
调用。 在UIManager
调用getDefaults
之前调用此方法。 该方法旨在对外观进行任何初始化。 子类应该在这里进行任何一次性设置,而不是在静态初始化器中进行任何一次性设置,因为可以加载外观和感觉类对象,以发现isSupportedLookAndFeel()
返回false
。
-
uninitialize
public void uninitialize()
初始化外观和感觉。 虽然这种方法是公开的,但是只有当外观和感觉被卸载时才应该由UIManager
调用。 例如,当外观和感觉改变时,UIManager.setLookAndFeel
调用这个。子类可以选择在这里释放一些资源。
-
initClassDefaults
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()
-
initSystemColorDefaults
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());
如前所述,这loadSystemColors
使用所提供的table
和name-color
对阵列来调用loadSystemColors
。loadSystemColors
的最后一个参数表示是否应使用SystemColor
中的字段值。 该方法将isNativeLookAndFeel()
的值作为最后一个参数传递给loadSystemColors
。- 参数
-
table
- 添加了值的UIDefaults
对象 - 异常
-
NullPointerException
- 如果table
是null
- 另请参见:
-
SystemColor
,getDefaults()
,loadSystemColors(javax.swing.UIDefaults, java.lang.String[], boolean)
-
loadSystemColors
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
和name-color
对中的colors
之一是null
-
ArrayIndexOutOfBoundsException
- 如果useNative
是false
和systemColors.length
是奇数 - 另请参见:
-
initSystemColorDefaults(javax.swing.UIDefaults)
,SystemColor
,Color.decode(String)
-
initComponentDefaults
protected void initComponentDefaults(UIDefaults table)
填充table
的基本外观和默认值。- 参数
-
table
- 要添加值的UIDefaults
- 异常
-
NullPointerException
- 如果table
是null
-
getAudioActionMap
protected ActionMap getAudioActionMap()
返回一个包含这种外观的音频动作的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
被创建。- 结果
-
一个ActionMap包含
Actions
负责播放听觉线索 - 异常
-
ClassCastException
- 如果默认"AuditoryCues.actionMap"
值不是ActionMap
,或默认"AuditoryCues.cueList"
值不是Object[]
- 从以下版本开始:
- 1.4
- 另请参见:
-
createAudioAction(java.lang.Object)
,playSound(Action)
-
createAudioAction
protected Action createAudioAction(Object key)
创建并返回一个Action
用于播放声音。如果
key
为non-null
,则使用默认值Action
创建一个key
。 该值标识要在actionPerformed
上调用Action
时要加载的声音资源。 声音资源通过byte[]
加载到getClass().getResourceAsStream()
。- 参数
-
key
- 识别音频动作的键 - 结果
-
一个
Action
用于播放源,或null
如果key
是null
- 从以下版本开始:
- 1.4
- 另请参见:
-
playSound(Action)
-
playSound
protected void playSound(Action audioAction)
如有必要,可actionPerformed
,audioAction
发声。 所述actionPerformed
,如果值方法被调用"AuditoryCues.playList"
默认是non-null
Object[]
含有String
条目等于的名称audioAction
。- 参数
-
audioAction
- 知道如何呈现与正在发生的系统或用户活动相关联的音频的动作; 值为null
,被忽略 - 异常
-
ClassCastException
- 如果audioAction
是non-null
,而默认值"AuditoryCues.playList"
不是Object[]
- 从以下版本开始:
- 1.4
-
-