疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Swing概述—[疯狂java讲义]


 

Swing概述
 
        使用Swing来开发图形界面比AWT更加优秀,因为Swing是一种轻量级组件,它采用100%的Java实现,不再依赖于本地平台的图形界面,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色。
 
        除此之外,Swing提供了比AWT更多的图形界面组件,因此可以开发出更美观的图形界面程序。由于AWT需要调用底层平台的GUI实现,所以AWT只能使用各种平台上GUI组件的交集,这大大限制了AWT所支持的GUI组件。对Swing而言,几乎所有组件都采用纯Java实现,所以无须考虑底层平台是否支持该组件,因此Swing可以提供如JTabbedPane,、JDesktopPane、 JIntemalFrame等特殊容器,也可以提供像JTree、JTable、JSpinner、JSlider等特殊的GUI组件。
 
        除此之外,Swing组件都采用MVC (Model-View-Controller,即模型—视图—控制器)的设计,从而可以实现GUI组件的显示逻辑和数据逻辑的分离,从而允许程序员自定义Render来改变GUI组件的显示外观,提供更多的灵活性。
 
        在GUI图形用户界面和AWT这篇文章里己经介绍过AWT和Swing的关系,因此我们知道:实际使用Java进行图形界面程序时,很少使用AWT组件,绝大部分时候都是用Swing组件来进行开发。Swing是由100%纯Java实现的,不再依赖于本地平台的GUI,因此可以在所有平台上都保持相同的界面外观。独立于本地平台的Swing组件被称为轻量级组件;而依赖于本地平台的AWT组件被称为重量级组件。
 
         由于Swing的所有组件完全采用Java实现,不再调用本地平台的GUI,所以导致Swing图形界面的组件显示速度要比AWT图形界面的显示速度慢一些,但相对于快速发展的硬件设施而言,这种微小的速度差别无妨大碍。
 
使用Swing开发图形界面有如下几个优势:
1、Swing组件不再依赖于本地平台的GUI,无须采用各种平台的GUI交集,因此Swing提供了大量图形界面组件,远远超出了AW下所提供的图形界面组件集。
2、Swing组件不再依赖于本地平台GUI,因此不会产生与平台相关的bug.
3、Swing组件在各种平台上运行时可以保证具有相同的图形界面外观。
 
         Swing提供的这些优势,让Java图形界面程序真正实现了“Write Once, Run Anywhere”的目标。(摘自[疯狂java讲义])