80 likes | 234 Views
第 18 讲 图形用户界面㈣. Swing 组件库. AWT 设计的初衷是支持开发小应用程序的简单用户界面。但是, AWT 缺少剪贴板、打印支持、键盘导航等特性,而且原来的 AWT 甚至不包括弹出式菜单或滚动窗格等基本元素。此外,人们使 AWT 适应基于继承的、具有很大伸缩性的 事件 模型,基于同位体的体系结构就成为其致命的弱点。 Swing 产生的主要原因就是 AWT 不能满足图形化用户界面发展的需要。. Swing 概述. Swing 组件几乎都是轻量组件
E N D
Swing组件库 • AWT设计的初衷是支持开发小应用程序的简单用户界面。但是,AWT缺少剪贴板、打印支持、键盘导航等特性,而且原来的AWT甚至不包括弹出式菜单或滚动窗格等基本元素。此外,人们使AWT适应基于继承的、具有很大伸缩性的事件模型,基于同位体的体系结构就成为其致命的弱点。 • Swing产生的主要原因就是AWT不能满足图形化用户界面发展的需要。
Swing概述 • Swing组件几乎都是轻量组件 • Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级( light-weight)组件,没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。 • Swing采用了一种MVC的设计范式,即“模型-视图-控制”(Model-View-Controller),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。 • Swing比AWT提供了更多的组件,这些组件都在javax.swing包中定义,按功能分类有下面几种。
Swing概述 1.顶层容器组件(Top-Level Containers) JFrame,JDialog,JApplet,JSplitPane,JTabbedPane,JToolbar 2.特殊用途容器组件(Special-Purpose Containers) JInteralFrame,JLayeredFrame,JRootPane 3.基本组件(Basic Controls) JButton,JComboBox,JList,JMenu,JSlider,JTextField,JTextArea 4.信息显示组件(Uneditable Information Displays) JLabel,JProgressBar,JTooltip 5.格式化信息输入组件(Editable Displays of Formatted Information) JColorChooser,JFileChooser,JTable,JTree
Swing基本组件的使用 • 向JFrame中添加组件的方法与AWT中向Frame中添加组件略有不同。JFrame中含JRootPane容器组件又内含contentPane容器组件,只能在contentPane容器中添加组件。通常,使用JFrame中的getContentPane()方法,获取对contentPane对象的引用 • 例Ex9_29 Swing基本组件的使用 • 从本例可以看出,Swing比AWT提供了更多的组件,而且每个组件的方法属性也比AWT中的组件丰富。
JTree类 • 树状组件(JTree)提供了庞大的API,是Swing中功能最大的一个组件。几乎可以在树状组件上做任何动作,但是操作起来也很复杂。幸好,Swing提供了一个缺省的树状组件处理模式。当你按下按钮之后,新的子树状组件便会加到目前所选取的节点上。 • 例:Ex9_30 JTree类的使用 • 程序运行结果如图所示。运行时,首先生成一个带滚动条的面板treeScroller,然后通过Swing提供的缺省的树状组件DefaultMutableTreeNode生成多个节点。
JTable类 • 和树状组件一样,表格(JTable)组件也非常的庞大。特别是程序通过JDBC访问数据时,常常会运用表格来显示界面。 • 例:Ex9_31 JTable类的使用 • 程序分析:程序中使用了构造方法JTable(Object[][] rowData, Object[] columnNames)生成一个二维表格。其中,rowDate数组是用来显示的值,columnNames数组表示是二维数组的列名称。
本章小结 • 用户界面程序的AWT基本组件 • 五种布局管理器 • 鼠标、键盘等事件驱动设计 • AWT基本组件和高级组件的简单应用 • Swing组件的使用 • AWT绘图方法