使用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中国
相关推荐
-
如何看待微软收购Xamarin?
今年三月微软正式收购了Xamarin,你认为微软收购Xamarin对其有什么作用?
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?