Module  java.desktop

Class BasicLookAndFeel

  • All Implemented Interfaces:
    Serializable
    已知直接子类:
    MetalLookAndFeelSynthLookAndFeel


    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
    • 构造方法详细信息

      • BasicLookAndFeel

        public BasicLookAndFeel​()
    • 方法详细信息

      • initialize

        public void initialize​()
        初始化外观和感觉。 虽然这种方法是公开的,但是只有当安装了外观和现在的外观时,才应该由UIManager调用。 UIManager调用getDefaults之前调用此方法。 该方法旨在对外观进行任何初始化。 子类应该在这里进行任何一次性设置,而不是在静态初始化器中进行任何一次性设置,因为可以加载外观和感觉类对象,以发现isSupportedLookAndFeel()返回false
        重写:
        initializeLookAndFeel
        另请参见:
        LookAndFeel.uninitialize()UIManager.setLookAndFeel(javax.swing.LookAndFeel)
      • 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对中的两个:

          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.decodeString转换为Color 如果decode不能转换StringColorNumberFormatException被抛出),那么ColorUIResource黑色的使用。

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

        参数
        table - 添加了值的 UIDefaults对象
        systemColors -阵列的 name-color对作为中所述 initSystemColorDefaults(UIDefaults)
        useNative - 是否从 SystemColorColor.decode获得颜色
        异常
        NullPointerException - 如果systemColorsnull ; systemColors不为空,而tablenull ; name-color对的名称之一是null ; useNativefalsename-color对中的colors之一是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"阵列,并调用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用于播放声音。

        如果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