/**
* Title:swing概观
* Description: swing初步知识
* Copyright: eclipse (c) 2002
* Company:unix
*/
一、swing的概观
swing是目前java不可或缺的窗口工具组,在swing尚未推出之前,写java窗口必须使用AWT(abstract window toolkit)包。AWT没有弹性可言,具体表现在不能随意改变组件外观等。本课程主要讲解swing,AWT免谈。
swing中只有JFrame,JDialog,JWindow与JApplet不是纯java所写成,其余组件和事件响应方法均为纯java所写。
二、swing结构
swing原先是利用MVC(model-view-controller)的概念衍生而成,这个模式应用在smalltalk语言上,MVC概念如下:
model:存储组件数据的地方,如JChockBox中的model将存储所有选项的值,并以boolean值来表示,JTable的model则存储所有表格上的数据。
view:显示组件的外观
controller:处理用户组件的操作,并写改变存储在model中。
MVC图形表示:
view
|
controller
|
model
MVC已经具有清楚的模块结构,因此swing在设计上遵循这样的概念,但作了一些改变。原先独立的view和controller在swing中被合并在一起,称为UI(UI-deldgate)界面,因为swing的发展小组认为这两者关系紧密,分开设计会增加难度。
M-UI结构图:
UI-delegate
|
model
不论swing的结构如何设计,swing中的model均可分成三个种类:
第一种,存储组件内部将被用来操作的数据。如tableModel,and so on.
第二种,存储控制组件操作模式的数据。如JList等
第三种,存储组件本身性质的数据模式。如JSlider等。
三、swing中常用的package
package comments
1.javax.swing 最常用的package,里面包含和各种swing组件的类
2.javax.swing.border 包含与swing组件外框有关的类
3.javax.swing.colorchoser 针对与swing组件外框有关的类
4.javax.swing.event 处理由swing组件产生的事件,有别于AWT事件
5.javax.swing.filechooser 包含针对swing文件选择对话框JFileChooser所设计的类
6.javax.swing.plaf 处理swingx组件外观的相关类
7.javax.swing.plaf.basic 同6
8.javax.swing.plaf.metal 同6
9.javax.swing.plaf.multi 同6
10.javax.swing.table 针对swing表格组件JTable所设计的类
11.javax.swing.text 包含与swing文字框有关的类
12.javax.swing.text.html 同11
13.javax.swing.text.html.parser 同11
14.javax.swing.text.rtf 同11
15.javax.swing.tree 包含swing 树状无件JTree所设计的类
16.javax.swing.undo 包含与swing文字组件Redo或Undo的功能
9.27思考:
1、试说明swing的组件设计的理念以及优于AWT的原因?
2、试说明swing的结构概念
3、为什么将swing的view与controller合在一起,这样有什么用 :)
****大家可以跟贴回答以及得问