Swing ——Swing基本结构
来源:互联网 发布:mac虚拟机打游戏 编辑:程序博客网 时间:2024/06/15 01:53
Swing原先是利用MVC(Model-View -Controller)的概念衍生而出
Model
存储组件数据。例如JCheckBox中的Model将存储所有选项的值,并以Boolean值来表示,而JTable的Model则会存储所有表格上的数据。
View
显示组件的外观。
Controller
处理用户在组件上的操作,并将改变后的数据存储在Model中。
由于MVC具有清楚的模块结构,因此Swing在设计上也遵循这样的概念,但做了一点小小的改变。原先独立出现的View与Controller在Swing中是将它合并在一起的,并称为委托式UI界面(UI-delegate),原因是Swing的发展小组认为这两都具有紧密的相关性,若分开设计并没有太多的好处,且会提高设计上的难度。所以,原先的MVC结构就被更改成M-UI结构。
Swing组件的Model可分成3类
第一种:存储组件内将被用来操作的数据。
该模式最常被用来显示不同的数据显示方式,如TableModel、ListModel、ComboBoxModel、Document等。TableModel是存储JTable上所有字段的数据,ListModel是存储JList上所有项目的数据,Document是存储文字输入组件(JTextField、JTextArea等)内的所有内容。
第二种:存储控制组件操作模式的数据。
例如在JList或JTable中,我们可以使用ListSelectionModel来决定用户一次是否能选择多列的数据,或是JTable的TableColumnModel可用来设置JTable中每个单元格的组件类型(如 JTextField 或 JComboBox等)。
第三种:存储组件本身性质的数据模式。
例如JSlider或JProgressBar组件都有minimun、maximun、extent与value四个参数值,用来代表组件的最小值、最大值、延伸区值与初始设置值,这四个参数值存储在BoundedRangeModel中。
当用户与界面有任何交互时,所有改变的值会更改至Model中原有设置的数据,此时Controller会负责调用更改画面与变更Model数据的操作。
Swing包结构
package
说明
javax.swing
最常用的包,里面包含了各种Swing组件的类。
javax.swing.border
包含与Swing组件边框有关的类。
javax.swing.colorchooser
针对Swing调色盘组件(JColorChooser)所设计的包。
javax.swing.event
处理由Swing组件产生的事件,有别于AWT事件。
javax.swing.filechooser
针对Swing文件选择对话框(JFileChooser)所设计的包。
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
处理Swing组件外观相关的类。
javax.swing.table
针对Swing表格组件(JTable)所设计的包。
javax.swing.text
javax.swing.text.html
javax.swing.text.parser
javax.swing.text.rtf
包含与Swing文字组件相关的类。
javax.swing.tree
针对Swing树状组件(JTree)所设计的包。
javax.swing.undo
针对Swing文字组件Redo或Undo的功能。
已使用 广州传智播客 创建。
- Swing ——Swing基本结构
- JAVA——Swing
- Swing——计算器
- Swing框架—JFrame
- Swing
- Swing..........
- swing
- swing
- Swing
- swing
- Swing
- swing
- swing
- Swing
- Swing
- Swing
- swing
- swing
- linux简单命令(继续更新中)
- Get filename and path from uri from mediastore
- php 并发时库存减少至小于0的解决方案
- GFX::3d::engine-加载obj
- WCF技术剖析之八:ClientBase<T>中对ChannelFactory<T>的缓存机制
- Swing ——Swing基本结构
- 1072:找规律填数字
- dclusr.dll
- EBS开发附件上传和下载功能
- Ubuntu Linux 环境变量PATH设置
- 【学习笔记1 --- Cocos2d-x开发环境配置 + Win7 + VS2010】
- win32编程 编码问题
- iOS开发之不得不会的gdb命令
- Scrum团队和直线组织兼容吗?