lookandfell

String lookandfeel = UIManager.getSystemLookAndFeelClassName();     UIManager.setLookAndFeel(lookandfeel);

顾名思义,LookAndFeel 封装了一个外观。除了安装外观之外,大多数开发人员无需直接与 LookAndFeel 进行交互。通常,只有创建自定义外观的开发人员才需要涉及此类。

Swing 构建的基础是每个 JComponent 子类都具有特定 ComponentUI 子类的实现。ComponentUI 通常被称为“ui”、“组件 ui”或“外观委托”。ComponentUI 子类负责提供组件特定于外观的功能。例如,JTree 需要 ComponentUI 子类 TreeUI 的实现。特定 ComponentUI 子类的实现由 LookAndFeel 提供。通过 JComponent 方法 getUIClassID,每个 JComponent 子类可标识所需的 ComponentUI 子类。

每个 LookAndFeel 实现必须提供适当 ComponentUI 子类的实现,方法是为 getDefaults 所返回的 UIDefaults 对象中每个 Swing 的 ui 类 id 指定一个值。例如,BasicLookAndFeel 将 BasicTreeUI 用作 TreeUI 的具体实现。这是通过提供键-值对 "TreeUI"-"javax.swing.plaf.basic.BasicTreeUI" 的 BasicLookAndFeel 完成的,该键-值对在 getDefaults 所返回的 UIDefaults 中。有关如何获得 ComponentUI 子类实现的详细信息,请参阅 UIDefaults#getUI(JComponent)。

当安装了一个 LookAndFeel 时,UIManager 不会检查是否存在所有 ui 类 id 的项。因此,如果当前外观尚未为特定 ui 类 id 提供一个值,并且创建了 JComponent 子类的实例,则会发生随机异常

你可能感兴趣的:(OO)