java swing apis可插拔式外观风格特性应用(二)

日期: 2007-12-26 来源:TechTarget中国

  使用plaf

  swing包含几个ui委托集。每个集合中包含了用于大部分swing组件的componentui实现,且每个这样的集合称为一个plaf实现。

  javax.swing.plaf包有继承自componentui的抽象类组成,javax.swing.plaf.basic包中的类扩展了这些抽象类用来实现基本的外观。ui委托集合是所有其它外观类用作构建自己的外观的基类。基本外观不能自己使用因为basiclookandfeel是一个抽象类。有三个继承自basiclookandfeel的可插拔式外观实现:

  ·windows: com.sun.java.swing.plaf.windows.windowslookandfeel

  ·cdemotif: com.sun.java.swing.plaf.motif.motiflookandfeel

  ·metal (default): javax.swing.plaf.metal.metallookandfeel

  同时还有一个模仿苹果用户接口的maclookandfeel,但是没有包含在java2中,必须单独下载。多路外观javax.swing.plaf.multi.multilookandfeel扩展了javax.swing.plaf中的所有抽象类。它运行同时使用多种外观的组合,且有意但并不仅限于和访问外观一起使用。每个多路ui委托的任务是管理每个它们的子ui委托。

  每个外观包中都包含了一个继承自抽象类javax.swing.lookandfeel:basiclookandfeel, metallookandfeel, windowslookandfeel等的类。这是访问每个外观包的中心点。当改变当前外观时,你会用到它们。同时uimanager类(用于管理安装的外观)使用它们来访问当前外观uidefaults表(其中包含了用于每个swing组件相应外观的ui委托类名称)。

  要想改变应用的当前外观,你只需要简单调用uimanager的setlookandfeel()方法,并将要使用的外观全名传递给该方法即可。可以使用列表a中的代码在运行时完成该任务。

  列表a try {
  uimanager.setlookandfeel(
   "com.sun.java.swing.plaf.motif.motiflookandfeel");
  swingutilities.updatecomponenttreeui(myjframe);
}
catch (exception e) {
system.err.println("could not load lookandfeel");

  当外观改变时,swing实用工具updatecomponenttreeui()通知所有特定组件的孩子,并通知它们丢弃原来的ui委托用来换取一个不同的特定类型委托。

  ·java swing入门基础
  ·跟我学java swing之游戏设计(1)
  ·java swing 组件全演示
  ·开始学习swing
  ·再论java swing线程
  ·swing布局设计及事件监听和javabean数据
  ·在netbeans 4.1中使用swing组件
  ·swing包概览
  ·swing资源
  ·swing 第三方工具设计

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐