Swing ——Swing基本结构

Swing原先是利用MVCModel View Controller)的概念衍生而出。 Swing组件的Model可分成3类。

 

Swing原先是利用MVCModel View Controller)的概念衍生而出

Model

         存储组件数据。例如JCheckBox中的Model将存储所有选项的值,并以Boolean值来表示,而JTableModel则会存储所有表格上的数据。

View

         显示组件的外观。

Controller

         处理用户在组件上的操作,并将改变后的数据存储在Model中。

         由于MVC具有清楚的模块结构,因此Swing在设计上也遵循这样的概念,但做了一点小小的改变。原先独立出现的ViewControllerSwing中是将它合并在一起的,并称为委托式UI界面(UIdelegate),原因是Swing的发展小组认为这两都具有紧密的相关性,若分开设计并没有太多的好处,且会提高设计上的难度。所以,原先的MVC结构就被更改成MUI结构。

 

Swing组件的Model可分成3

第一种:存储组件内将被用来操作的数据。

         该模式最常被用来显示不同的数据显示方式,如TableModelListModelComboBoxModelDocument等。TableModel是存储JTable上所有字段的数据,ListModel是存储JList上所有项目的数据,Document是存储文字输入组件(JTextFieldJTextArea等)内的所有内容。

第二种:存储控制组件操作模式的数据。

    例如在JListJTable中,我们可以使用ListSelectionModel来决定用户一次是否能选择多列的数据,或是JTableTableColumnModel可用来设置JTable中每个单元格的组件类型(如 JTextField JComboBox 等)。

第三种:存储组件本身性质的数据模式。

    例如JSliderJProgressBar组件都有minimunmaximunextentvalue四个参数值,用来代表组件的最小值、最大值、延伸区值与初始设置值,这四个参数值存储在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文字组件RedoUndo的功能。

 

已使用 广州传智播客 创建。

你可能感兴趣的:(Swing)