Swing的介绍

Swing是一个为java设计的GUI工具包.Swing是JAVA基础类的一部分.Swing包括了图形用户界面(GUI)器件如 : 文本框,按钮,分隔窗格和表.Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT.它们是JFC一部分.它们支持可更换的面板和主题,然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们.这意味着你可以在任意平台上使用JAVA支持的任意面板.轻量级组件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为.Swing开发图形界面比AWT更加优秀,因为Swing是一种轻量级组件,它采用100%的java实现,不再依赖于本地平台的,图形界面.,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色.由于AWT需要调用底层平台的GUI实现,所以AWT只能使用各种平台上GUI组件的交集,这大大限制了AWT所支持的GUI组件.对Swing而言,几乎所有组件都采用纯Java实现,所以无须考虑底层平台是否支持该组件,因此Swing可以提供如JTabbedPane,JDesktopPane,JInternalFarme等特殊的容器,也可以提供像JTree,JTable,JSpinner,JSlider等特殊的GUI组件.

Swing组件都采用MVC(Model-View-Controller,既模型-视图-控制器)设计模式,从而可以实现GUI组件的显示逻辑和数据逻辑的分离,允许程序员自定义Render来改变GUI组件的显示外观,提供更多的灵活性.

Swing开发图形界面有如下优势 :

Swing组件不再依赖于本地平台的GUI,无须采用各种平台的GUI交集,因此Swing提供了大量图形界面组件,远远超出了AWT所提供的图形界面组件集.

Swing组件不再依赖于本地平台GUI,因此不会产生与平台相关的bug.

Swing组件在各种平台上运行时可以保证具有相同的图形界面外观.

Swing提供的这些优势,让Java图形界面程序真正实现了"Write Once,Run Anywhere" 的目标.除此之外,Swing还有如下特征.

Swing组件采用MVC(MODEL-View-Controller,既模型-视图-控制器)设计模式,其中模型(Model)用于维护组件的各种状态,视图(View)是组件的可视化表现,控制器(Controller)用于控制对于各种事件,组件做出怎样的响应.当模型发送改变时,它会通知所有依赖它的视图,视图会根据模型数据更新自己.Swing使用UI代理来包装视图和控制器,还有另一个模型对象来维护该组件的状态.例如 , 按钮JButton有一个维护其状态信息的模型ButtonModel对象,Swing组件的模型是自动设置的,因此一般都使用JButton,而无须关系ButtonModel对象.因此,

Swing组件的模型是自动设置的,因此一般都使用JButton,而无须关系ButtonModel对象.因此,Swing的MVC实现也被称为Model-Delegate(模型--代理)


你可能感兴趣的:(Swing的介绍)