第17讲图形用户界面㈢滁州学院

上传人:小** 文档编号:57357065 上传时间:2018-10-21 格式:PPT 页数:22 大小:302.02KB
返回 下载 相关 举报
第17讲图形用户界面㈢滁州学院_第1页
第1页 / 共22页
第17讲图形用户界面㈢滁州学院_第2页
第2页 / 共22页
第17讲图形用户界面㈢滁州学院_第3页
第3页 / 共22页
第17讲图形用户界面㈢滁州学院_第4页
第4页 / 共22页
第17讲图形用户界面㈢滁州学院_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第17讲图形用户界面㈢滁州学院》由会员分享,可在线阅读,更多相关《第17讲图形用户界面㈢滁州学院(22页珍藏版)》请在金锄头文库上搜索。

1、1/,第17讲 图形用户界面,教学目标,掌握AWT高级组件 掌握利用AWT绘图,滚动条Scrollbar,滚动条(Scrollbar)是AWT中常用的组件,方便用户拖拽滚动条来设置数值或滚动画面。下表列出了类Scrollbar的构造方法与方法。,滚动条说明,滚动条的方向可以设置成水平或垂直,Scrollbar类分别用HORIZONTAL与VERTICAL两个常量来表示。 Java为滚动条提供了adjustmentEvent类进行事件处理,使用的是AdjustmentListener接口。接口提供了一个唯一的方法: void adjustmentValueChanged(adjustmentEv

2、ent e) adjustmentValueChanged()可接收adjustmentEvent类的对象,这个对象正是当滚动条滚动时触发adjustmentEvent而传递给监听器的。 例Ex9_25滚动条组件的使用,程序分析:当拖动滚动条时,AdjustmentEvent事件将被触发,adjustmentValueChanged()将执行。通过滚动条对象的getValue()方法取得滚动条的当前值,根据这个值设置标签字体的大小。,对话框Dialog,对话框(Dialog)是一种特殊的窗口,通常会利用它来处理一些简单的交互信息。Dialog与Frame类都是继承自Window类,它们均可放置

3、AWT的组件。下表列出了类Dialog的构造方法与方法。,对话框常用方法,例:Ex9_26对话框的使用,程序分析:运行程序,将得到一个窗口。当按下窗口的关闭按钮时,将弹出一个对话框,如图所示。按下对话框中的关闭按钮,窗口将关闭。当按下取消按钮时,将返回到初始状态。 程序中,可能会触发两个类的事件,一个是按下窗口关闭按钮所触发的WindowEvent事件,关于这个事件,程序中使用了由WindowAdapter类派生出来的内部类WinLis类对象来监听。另一个事件是对话框上的按钮按下时所触发的ActionEvent事件。因为Ex9_26类由ActionListener接口实现,所以第二个事件可以由

4、frm窗口对象来监听。,菜单的设计,一般的大型程序总是离不开菜单。在Java中,一个完整的菜单是由3个菜单栏类所创建,它们分别是菜单栏(MenuBar)、菜单(Menu)、菜单项(MenuItem)。其中,MenuBar和MenuItem都继承自MenuComponent类,Menu继承自MenuItem类。,菜单栏(MenuBar),菜单(Menu),菜单项(MenuItem),菜单项(MenuItem),创建菜单栏,创建一个菜单栏,首先必须创建一个MenuBar对象。通过调用窗口对象的setMenuBar()方法,将菜单栏加入到指定的窗口。再通过MenuBar对象的add()方法,将Men

5、u对象加入到菜单中,然后将MenuItem菜单项通过add()方法加入到各菜单中。由于Menu类是继承自MenuItem类的,所以也可以将一个Menu()对象通过add()方法加入到菜单中,这就形成了子菜单。 菜单栏的设计看起来很复杂,但是事件处理却很简单,它只会触发ActionEvent事件。具体的使用方法跟以前的按钮事件相同。 例:Ex9_27菜单栏设计示例,程序分析:同按钮事件的处理一样,通过getSource()方法获取事件源,根据事件源来设置窗口内Label对象的字体。程序看起来很长,实际上仔细分析并不困难,请读者自行分析程序。,AWT的绘图,AWT除了提供的基本组件来创建图形,还提

6、供了Graphics类供用户绘制图形。在一个窗口中,可以通过Graphics类提供的getGraphics()方法来获取绘图区域。取得绘图区域之后,就可以使用Graphics类提供的各种绘图方法来绘制图形了。 比如,想在窗口中绘制一个矩形,下面的语句就可以实现。Graphics g=getGraphics();g.drawRect(30,60,140,40); 第一条语句是取得窗口的绘图区,第二条语句是绘制长方形。 Graphics类提供了许多丰富的方法,同学们可以参考API熟悉这些方法。,例:Ex9_28 AWT绘图示例,程序分析:AWT提供了一个自发性 的paint()方法。paint()

7、方法在下 列情况发生时,会自动运行: 1当新建的窗口显示在显示器上, 或从隐藏变成显示时; 2从缩小图标还原之后; 3正在改变窗口的大小时。 paint()方法的格式是:public void paint(Graphics g) 可以将Graphics对象传给paint()方法,这样一来,编写在paint()里面的程序代码便可在绘图区内绘制图形了。上面的绘图代码就可以进行改装,将绘制矩形的代码放在paint()方法里面,程序通过调用paint()进行绘图。,Swing组件库,AWT设计的初衷是支持开发小应用程序的简单用户界面。但是,AWT缺少剪贴板、打印支持、键盘导航等特性,而且原来的AWT甚

8、至不包括弹出式菜单或滚动窗格等基本元素。此外,人们使AWT适应基于继承的、具有很大伸缩性的事件模型,基于同位体的体系结构就成为其致命的弱点。 Swing产生的主要原因就是AWT不能满足图形化用户界面发展的需要。,Swing概述,Swing组件几乎都是轻量组件 Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级( light-weight)组件,没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。 Swing采用了一种MVC的设计范式,即“模型-视图-控制”(Model-View-Controller),其中模型用来保存内容,视图用来显示内容,控制器用来

9、控制用户输入。 Swing比AWT提供了更多的组件,这些组件都在javax.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

10、信息显示组件(Uneditable Information Displays)JLabel,JProgressBar,JTooltip 5格式化信息输入组件(Editable Displays of Formatted Information) JColorChooser,JFileChooser,JTable,JTree,Swing概述,Swing基本组件的使用,向JFrame中添加组件的方法与AWT中向Frame中添加组件略有不同。JFrame中含JRootPane容器组件又内含contentPane容器组件,只能在contentPane容器中添加组件。通常,使用JFrame中的getCo

11、ntentPane()方法,获取对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数组表示是二维数组的列名称。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号