模块  java.desktop

Class BasicLookAndFeel

  • 实现的所有接口
    Serializable
    已知直接子类:
    MetalLookAndFeelSynthLookAndFeel

    public abstract class BasicLookAndFeel
    extends LookAndFeel
    implements Serializable
    用于为Swing创建外观的基类。

    BasicLookAndFeel提供的每个ComponentUI从默认表中派生其行为。 除非另有说明,否则此包中的每个ComponentUI实现都会记录它们使用的默认设置。 除非另有说明默认值是在安装的时候installUI被调用,并按照概述的建议LookAndFeel安装的默认值。

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,对java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    另请参见:
    Serialized Form
    • 构造方法详细信息

      • BasicLookAndFeel

        public BasicLookAndFeel()
    • 方法详细信息

      • 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 - 如果 tablenull
        另请参见:
        LookAndFeelgetDefaults()
      • 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对中的name-color对:

          String[] nameColorPairs = new String[] {
                  "desktop", "#005C5C",
            "activeCaption", "#000080" };
           loadSystemColors(table, nameColorPairs, isNativeLookAndFeel()); 
        如前所述,这loadSystemColors使用提供的tablename-color对阵列调用loadSystemColors loadSystemColors的最后一个参数指示是否应使用SystemColor中的字段值。 此方法将值isNativeLookAndFeel()作为最后一个参数传递给loadSystemColors
        参数
        table - 要添加值的 UIDefaults对象
        异常
        NullPointerException - 如果 tablenull
        另请参见:
        SystemColorgetDefaults()loadSystemColors(javax.swing.UIDefaults, java.lang.String[], boolean)
      • loadSystemColors

        protected void loadSystemColors​(UIDefaults table,
                                        String[] systemColors,
                                        boolean useNative)
        填充tablename-color成对systemColors 有关systemColors格式的详细信息,请参阅systemColors

        对于table中的每个name-color对,添加了一个条目systemColors 输入密钥是name对的name-color

        该条目的值对应于color对的name-color 条目的值以两种方式之一计算。 无论采用哪种方法,该值始终为ColorUIResource

        如果useNativefalse ,该color通过使用创建Color.decode的转换StringColor 如果decode无法将String转换为Color (抛出NumberFormatException ),则使用ColorUIResource黑色。

        如果useNativetrue ,所述color是字段中的值SystemColor具有相同名称为name的的name-color对。 如果该字段无效,则使用ColorUIResource黑色。

        参数
        table - 要添加值的 UIDefaults对象
        systemColors -的阵列 name-color如上述对 initSystemColorDefaults(UIDefaults)
        useNative - 颜色是从 SystemColor还是 Color.decode获得
        异常
        NullPointerException - 如果systemColorsnull ; systemColors不为空, tablenull ; 或其中一个name-color对的名称是null ; useNativefalse和的一个colors所述的name-color对中的null
        ArrayIndexOutOfBoundsException - 如果 useNativefalsesystemColors.length是奇数
        另请参见:
        initSystemColorDefaults(javax.swing.UIDefaults)SystemColorColor.decode(String)
      • initComponentDefaults

        protected void initComponentDefaults​(UIDefaults table)
        使用基本外观的默认值填充 table
        参数
        table - 要添加值的 UIDefaults
        异常
        NullPointerException - 如果 tablenull
      • 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"数组的每个元素并调用Action为每个元素创建createAudioAction()来完成Action 结果Action放在ActionMapUIResource ,使用数组元素作为键。 例如,如果"AuditoryCues.cueList"数组包含单个元素"audioKey"ActionMapUIResource创建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(java.lang.Object)playSound(Action)
      • createAudioAction

        protected Action createAudioAction​(Object key)
        创建并返回用于播放声音的Action

        如果keynon-null ,一个Action使用从与键的默认值的值创建key 该值标识在actionPerformed上调用Action时要加载的声音资源。 声音资源通过byte[]加载到getClass().getResourceAsStream()

        参数
        key - 标识音频动作的键
        结果
        Action用于播放源,或 null如果 keynull
        从以下版本开始:
        1.4
        另请参见:
        playSound(Action)
      • playSound

        protected void playSound​(Action audioAction)
        如有必要,请actionPerformedaudioAction播放声音。 actionPerformed ,如果值方法被调用"AuditoryCues.playList"默认为non-null Object[]含有String条目等于的名称audioAction
        参数
        audioAction - 一个知道如何呈现与正在发生的系统或用户活动相关联的音频的动作; 值为null ,将被忽略
        异常
        ClassCastException - 如果 audioActionnon-null并且默认值 "AuditoryCues.playList"不是 Object[]
        从以下版本开始:
        1.4