Java程序设计教程 教学课件 ppt 作者 978-7-302-18214-6 第11章-图形用户界面

上传人:E**** 文档编号:89346913 上传时间:2019-05-23 格式:PPT 页数:59 大小:1.02MB
返回 下载 相关 举报
Java程序设计教程 教学课件 ppt 作者  978-7-302-18214-6 第11章-图形用户界面_第1页
第1页 / 共59页
Java程序设计教程 教学课件 ppt 作者  978-7-302-18214-6 第11章-图形用户界面_第2页
第2页 / 共59页
Java程序设计教程 教学课件 ppt 作者  978-7-302-18214-6 第11章-图形用户界面_第3页
第3页 / 共59页
Java程序设计教程 教学课件 ppt 作者  978-7-302-18214-6 第11章-图形用户界面_第4页
第4页 / 共59页
Java程序设计教程 教学课件 ppt 作者  978-7-302-18214-6 第11章-图形用户界面_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《Java程序设计教程 教学课件 ppt 作者 978-7-302-18214-6 第11章-图形用户界面》由会员分享,可在线阅读,更多相关《Java程序设计教程 教学课件 ppt 作者 978-7-302-18214-6 第11章-图形用户界面(59页珍藏版)》请在金锄头文库上搜索。

1、第11章 图形用户界面,本章学习目标,了解图形用户界面的历史及其设计原则。 掌握AWT组件集中的各类组件。 理解AWT事件处理机制。 学会编写常见事件处理程序。 了解Swing组件集及其简单编程。,概述,图形用户界面,英文全称为Graphical User Interface,一般习惯简称为GUI。 图形化用户界面大大方便了人机交互,是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人机环境三者作为一个系统进行总体设计。,设计原则,用户至上的原则 交互界面要友好 配色方案要合理,主流开发工具集,基于Java的图形用户界面开发工具(即组件集)最主流的有三种: A

2、WT Swing SWT/JFace,随Sun的JDK一起发布,源于IBM的Eclipse开源项目,AWT组件集,AWT由JDK的java.awt包提供,里面包含了许多可以用来建立图形用户界面(GUI)的类,一般称这些类为组件(component),图11-1 AWT组件的继承关系图,AWT组件集,AWT组件大致可以分为以下三类: (1)容器类组件 (2)布局类组件 (3)普通组件类,容器类组件,容器类组件由Container类派生而来,常用的有Frame类和Dialog类,以及Panel类型的Applet类。这些容器类组件可以用来容纳其他普通组件或者甚至是容器组件自身,起到组织用户界面的作用

3、。 容器类组件有一定的范围和位置,并且它们的布局从整体上也决定了所容纳组件的位置 因此,在界面设计的初始阶段,首要考虑的就是容器类组件的布局。,布局组件类,布局类组件是非可视组件,它们能很好地在容器中布置其他可视组件。AWT提供了五种基本的布局方式:FlowLayout、BorderLayout、GridLayout、GridBagLayout和CardLayout等,它们均为Object类的子类,如下图11-2所示。,图11-2 布局方式,FlowLayout,FlowLayout是最简单的一种布局方式,被容纳的可视组件从左向右,从上至下依次排列,若一组件在本行放置不下,就自动排到下一行的开

4、始处,该方式为Panel类和Applet类容器的默认布局方式。,示例11-1源程序,BorderLayout,BorderLayout布局方式的特点是:将容器划分为“东”“西”“南”“北”“中”五个区。 每个区可以摆放一个组件,因此最多可以在BorderLayout的容器组件中放置五个子组件。 Frame或Dialog容器类组件的默认布局方式。,示例11-3源程序,GridLayout,GridLayout布局将容器划分为行和列的网格,每个网格单元可以放置一个组件,组件通过add()方法从上到下,从左至右顺序加入网格各个单元中 GridLayout布局允许在组件之间设置水平和垂直间距,间距同样

5、以像素为单位表示,如下为创建6行6列,水平间隔和垂直间隔均为10个像素的GridLayout布局对象: setLayout(new GridLayout(6,6,10,10);,示例11-4源程序,图11-10 GridLayout布局界面,GridBagLayout,GridBagLayout是所有AWT布局管理方式中最繁的,同时也是功能最强的。 GridBagLayout设置的所有行和列可以大小不同。 GridBagLayout允许不同组件在容器中占据不同大小的矩形区域。 GridBagLayout由一个专用的类来对布局行为进行约束,该类为GridBagConstraints,它的所有成员

6、都是public(公有)的,要掌握如何使用GridBagLayout布局,关键在于熟悉这些约束变量,以及如何进行设置。,GridBagConstraints的常用属性,public girdx /组件所处位置的起始单元格列号 public gridy /组件所处位置的起始单元格行号 public gridheight /组件在垂直方向占据的单元格个数 public gridwidth /组件在水平方向占据的单元格个数 public double weightx /容器缩放时,单元格在水平方向的缩放比例 public double weighty /容器缩放时,单元格在垂直方向的缩放比例 pub

7、lic int anchor /当组件较小时指定其在网格中的起始位置 public int fill /当组件分布区域变大时指明是否缩放,以及如何缩放 public Insets insets /组件与外部分布区域边缘的间距 public int ipadx /组件在水平方向的内部缩进 public int ipady /组件在垂直方向的内部缩进,示例11-5源程序,示例11-6源程序,CardLayout,CardLayout布局将组件(通常是Panel类的容器组件)象扑克牌(卡片)一样摞起来,每次只能显示其中的一张,实现分页的效果,每一页中可以有各自的界面,这样就相当于扩展了原本有限的屏幕

8、区域。,示例11-7源程序,CardLayout布局组件提供了以下方法来对各张Card页面进行切换: public void first (Container parent) /显示第一张卡片 public void next (Container parent) /显示下一张卡片 public void previous (Container parent) /显示上一张卡片 public void show (Container parent,String name) /显示指定卡片 public void last (Container parent) /显示最后一张卡片,Hint,有些

9、Java IDE(如JBuilder)也提供广大编程者所熟悉的基于绝对像素坐标的XYLayout布局方式(用户在此布局方式下可以进行可视化的拖放操作) Java用户界面设计的独到之处恰恰在于其与平台无关的布局方式。 一般不建议采用XYLayout布局,它不但使用起来要依赖于特定的包,还有损Java独立性,不利于程序移植,除非用户认定所编写的程序就只在某特定平台(如Windows)下进行运行。,普通组件,AWT提供了一系列的普通组件以构建用户图形界面,它们主要包括:标签、文本框、文本域、按钮、复选框、单选框、列表框、下拉框、滚动条和菜单等,标签,标签是很简单的一种组件,一般用来显示标识性的文本信

10、息,常被放置于其他组件的旁边起提示作用。 AWT提供的标签类为Label,因此,可以通过创建Label对象来使用标签。,例11-9源程序,文本框,文本框是图形界面中常用于接收用户输入或程序输出的一种组件,它只允许输入或显示单行的文本信息,且用户还可以限定文本框的宽度。 AWT提供的文本框类为TextField,它直接继承于TextComponent,而TextComponent则从Component类继承而来。,关于TextField类的常用方法有: public String getText() /获取文本框中的输入文本 public String getSelectedText() /获取

11、文本框中选中的文本 public boolean isEditable() /返回文本框是否可输入 public void setEditable(boolean b) /设置文本框的状态:可输入或不可输入 public int getColumns() /获取文本框的宽度 public void setColumns(int columns) /设置文本框的宽度 public void setText(String t) /设置文本框中的文本为t,【例11-10】,文本域,文本域组件也是用来接收用户输入或程序输出的,不过与文本框不同的是,它允许进行多行输入或输出,因而它一般用于处理大量文本的

12、情形。 AWT提供的文本域组件为TextArea类,它也是从TextComponent类继承而来。,【例11-11】,按钮,AWT提供的按钮类为Button,它是从Component类直接继承而来。,复选框,复选框组件也是图形界面上用于接受用户输入的一种快捷方式,一般是在界面上提供多个复选框选项,用户根据实际情况,可以多选也可以都不选。 AWT提供的复选框类为Checkbox。 事实上,该组件类类似于具有开关选项的按钮,用户单击选中,再单击则取消选中。,【例11-12】,单选框,在有些情况,程序界面可能给用户提供多个选项,但是只允许用户选中其中一个,这就是单选框的概念。 事实上,单选框是从上面

13、复选框衍生而来的,它也采用Checkbox作为其组件类,不过为了实现单选效果,还需要另外一个组件类:CheckboxGroup,当我们把Checkbox类对象添加进某个CheckboxGroup对象后,它就成为了单选框。,【例11-13】,列表框,列表框组件看起来像文本域,可以有多行,每一行文本代表一个选项,文本域组件多用于用户编辑之用,而列表框多用于给用户几个选项进行选择,可以多选也可以单选。 AWT提供的列表框类为List,它直接继承于Component类,,【例11-14】,下拉框,下拉框组件提供一些选项供用户来选择,每次只能选一个,选中的选项会被单独显示出来,而改变选项则可以通过单击组

14、件边上的箭头,再从下拉框中进行选择来完成。下拉框相比列表框而言,占据较小的界面区域。 AWT提供的下拉框类为Choice,它直接继承于Component类,,【例11-15】,滚动条,滚动条是图形用户界面中常见的组件之一,它既可以用作取值器,也可以用来滚动显示某些较长文本信息。 AWT提供的滚动条类为Scrollbar,它也是直接从Component组件继承而来,,【例11-16】,菜单,菜单将系统的各种功能选项以直观的方式展现出来,供用户选择,大大方便了用户与系统间的交互。 菜单相比其他组件类特殊,它是由几个菜单相关类共同构成的菜单系统。AWT提供的菜单系统类包括:MenuBar、MenuI

15、tem、Menu、CheckboxMenuItem以及PopupMenu,它们之间的继承关系如下图所示:,MenuBar类对应菜单系统的整体,Menu类对应菜单系统中的一列菜单(实际上它只是一种特殊的菜单项),MenuItem和CheckboxMenuItem类则对应具体的菜单项,其中CheckboxMenuItem为带复选框的菜单项,而PopupMenu类对应弹出式菜单,它是菜单Menu类的子类。,注意,由于各个类间存在继承关系,因而子类可以调用父类提供的部分常用方法。 菜单系统创建好后,最后必须调用Frame类的setMenuBar()方法将其加入到框架界面中。,【例11-17】,事件处理

16、,在早先的JDK1.0版本中提供的是称为层次事件模型的事件处理机制 。 在JDK1.1以后版本中便被基于事件监听模型的事件处理机制替代了,这种机制也称之为事件派遣机制或授权事件机制,它的处理效率相比层次事件模型大为提高 。,事件类及其对应的监听器,AWT提供了很多的事件类及其对应的监听器(其实就是接口),它们都被放置到JDK的java.awt.event包中 。,ActionEvent类,表示一个广义的行为事件,可以是鼠标单击按钮或者菜单,也可以是列表框的某选项被双击或文本框中的回车行为。ActionEvent类对应的监听器为ActionListener接口,该接口只有一个抽象方法: public abstract void actionPerformed(ActionEvent actionevent); 注册该监听器需要调用组件的addActionListener()方法,撤销则调用组件的 removeActionListener()方法。,K

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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