swing的概述

Swing是由100%纯Java实现的,不再依赖于本地平台的GUI窗口,因此可以在所有平台上都保持相同的界面外观。独立于本地平台的Swing组件被称为轻量级组件;而依赖于本地平台的AWT组件被称为重量级组件 由于Swing的所有组件完全采用Java实现,不再调用本地平台的GUI,所以导致Swing图形界面的显示速度要比AWT图形界面的显示速度慢一些,但相对于快速发展的硬件设施而言,这种微小的速度差别无妨大碍

使用Swing的优势: 1、Swing组件不再依赖于本地平台的GUI,无须采用各种平台的GUI交集,因此Swing提供了大量图形界面组件,远远超出了AWT所提供的图形界面组件集 2、Swing组件不再依赖于本地平台GUI,因此不会产生与平台相关的bug 3、Swing组件在各种平台上运行时可以保证具有相同的图形界面外观 Swing提供的这些优势,让Java图形界面程序真正实现了"Write Once,Run Anywhere"的目标

 

Swing的特征:

 

1、Swing组件采用MVC(Model-View-Controller,即模型-视图-控制器)设计模式

模型:用于维护组件的各种状态,例如模型可以维护组件显示的数据 视图:是组件的可视化表现,例如展示模型里面的数据 控制器:用控制对于各种时间、组件做出响应,例如控制模型里面的数据如何在视图里展示

当模型发生改变时,它会通知所有依赖它的视图,视图会根据模型数据来更新自己。Swing使用UI代理来包装视图和控制器,还有一个模型对象来维护该组件的状态。例如,按钮JButton有一个维护其状态信息的模型ButtonModel对象。Swing组件的模型是自动设置的,因此一般都使用JButton,而无须关心ButtonModel对象

 

2、Swing在不同的平台表现一致,并且有能力提供本地平台不支持的显示外观。由于Swing采用MVC模式来维护各组件,所以当组件的外观被改变时,对组件的状态信息(由模型维护)没有任何影响。因此,Swing可以使用拔插式外观感觉(Pluggable Look And Feel,PLAF)来控制组件外观,使得Swing图形页面在同一个平台上运行时能拥有不同的外观,用户可以选择自己喜欢的外观。相比之下,在AWT图形界面中,由于控制组件外观的对等类与具体平台相关,因此AWT组件总是具有与本地平台相同的外观