Java面向对象程序设计 第2版 教学课件 ppt 作者 韩雪 第7章 图形用户界面的实现

上传人:E**** 文档编号:89369506 上传时间:2019-05-24 格式:PPT 页数:39 大小:560KB
返回 下载 相关 举报
Java面向对象程序设计 第2版 教学课件 ppt 作者  韩雪 第7章  图形用户界面的实现_第1页
第1页 / 共39页
Java面向对象程序设计 第2版 教学课件 ppt 作者  韩雪 第7章  图形用户界面的实现_第2页
第2页 / 共39页
Java面向对象程序设计 第2版 教学课件 ppt 作者  韩雪 第7章  图形用户界面的实现_第3页
第3页 / 共39页
Java面向对象程序设计 第2版 教学课件 ppt 作者  韩雪 第7章  图形用户界面的实现_第4页
第4页 / 共39页
Java面向对象程序设计 第2版 教学课件 ppt 作者  韩雪 第7章  图形用户界面的实现_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《Java面向对象程序设计 第2版 教学课件 ppt 作者 韩雪 第7章 图形用户界面的实现》由会员分享,可在线阅读,更多相关《Java面向对象程序设计 第2版 教学课件 ppt 作者 韩雪 第7章 图形用户界面的实现(39页珍藏版)》请在金锄头文库上搜索。

1、第7章 图形用户界面的实现,图形界面作为用户与程序交互的窗口,是软件开发中一项非常重要的工作。本章将会详细介绍如何使用Java语言编写图形界面,利用Java丰富的图形组件创建交互性更好的用户界面。,7.1 图形用户界面概述,无论采取何种语言、工具实现图形界面,其原理都基本相似。简单而言,图形界面就是用户界面元素的有机合成。这些元素不仅在外观上相互关联,在内在上也具有逻辑关系,通过相互作用、消息传递,完成用户操作的响应。 设计和实现图形用户界面时,主要包含两项内容。 (1)创建图形界面中需要的元素,进行相应的布局。 (2)定义界面元素对用户交互事件的响应以及对事件的处理。,7.2 Swing与A

2、WT,AWT、Swing作为图形界面的开发包同时存在于同一标准库中,那么二者之间的区别在哪里呢?创建图形界面时如何取舍?本节详细讲述Swing与AWT的关系,以及如何取舍Swing与AWT。,7.2.1 Swing与AWT之间的关系,Swing诞生之前,Java中用来进行图形用户界面开发的工具包为AWT。AWT是“Abstract Window Toolkit”的缩写,又称为“抽象窗体工具包”。 AWT是随早期Java一起发布的GUI工具包,是所有Java版本中都包含的基本GUI工具包,其中不仅提供了基本的控件,并且还提供了丰富的事件处理接口。Swing是继AWT之后Sun推出的又一款GUI工

3、具包。Swing建立在AWT 1.1基础上的,也就是说,AWT是Swing大厦的基石。,7.2.2 关于Swing与AWT控件的混用,由于AWT中提供的控件,均依赖本地系统实现,而Swing控件属于轻量级控件,是由纯Java编写的,使用基本图形元素直接在屏幕上绘制,因此在搭建界面时,如果将二者同时使用,就有可能会出现遮挡的现象。,7.3 事 件 处 理,对于GUI的应用程序来说,事件处理是必不可少的,用户与程序之间的交互都是通过事件处理来实现的。 当用户与GUI交互时,无论是单击鼠标,还是按下键盘,都会触发相应的事件。事件将通知应用程序发生的情况,接着应用程序会根据不同的事件作出相应的回应。所

4、以在整个过程中涉及到两个对象:事件源与事件监听器。 事件源是指触发事件的控件,如按钮、窗体、列表、表格等。不同控件在不同情况下将触发不同的事件,关于事件的信息被封装在事件对象中。,7.3.1 事件的层次结构,前面已经介绍,虽然现在在开发中使用的都是Swing控件,但事件处理模型还是基于AWT 1.1的。本小节将介绍AWT 1.1中的事件层次结构, 所有的事件类都继承自EventObject类,在该类中定义了一个非常有用的getSource()方法,该方法的功能为从事件对象获取触发事件的事件源,为编写事件处理的代码提供方便,该方法的接口如下。,7.3.2 窗体事件,大部分GUI应用程序都需要使用

5、窗体来作为最外层的容器,可以说窗体是组建GUI应用程序的基础,应用中需要使用的其他控件都是直接或间接放在窗体中的。 如果窗体关闭时需要执行自定义的代码,则应该使用事件处理来实现,本小节将结合事件处理模型介绍如何开发处理窗体事件的代码,包括关闭窗体、窗体失去焦点、获得焦点、最小化等情况。,7.3.3 鼠标事件,当用户在GUI界面上单击鼠标、拖动鼠标、转动鼠标滚轮时,都会触发相应的鼠标事件。对于鼠标事件,Java提供了MouseWheelEvent类和MouseEvent类表示相应的事件。 MouseWheelEvent事件主要用来处理与鼠标滚轮转动相关的动作,如鼠标滚轮转动的方向和单位数。而Mo

6、useEvent事件则反映了事件发生时鼠标的按键、水平x坐标、垂直y坐标以及关联鼠标的单击次数。,7.3.4 事件适配器,适配器是指实现了一个或多个监听接口的类,适配器类为所有的事件处理方法都提供了空实现。实际开发中在编写监听器代码时不再直接实现监听接口,而是继承适配器类并重写需要的事件处理方法,这样就避免了编写大量不必要代码的情况,,7.4 创建图形用户界面,通过上面的介绍,我们已经对图形用户界面编程有了初步的认识。从本节开始将系统地介绍如何开发图形用户界面,尤其是讲述需要用到的基本知识点。,7.4.1 窗体,在前面介绍窗体事件中曾经讲述过,应用中需要使用的其他控件都是直接或间接放在窗体中的

7、,窗体是组建GUI应用程序的基础。在Swing中,可以利用JFrame类创建包含标题、边框以及最大化、最小化、关闭按扭的窗口。 JFrame类构造器创建的窗体是不可见的,需要在代码中手工指定才可以在屏幕上看见窗体。这样做的目的是因为很多对窗体的特殊操作都需要在窗体被设置为可见之前完成,否则将会在运行时抛出异常。同时,JFrame类构造器创建的窗体默认的尺寸为00像素,默认的位置坐标为0,0。因此在开发中要注意,仅仅将窗体设置为可见的还是不能看到窗体,还需要显式地指定窗体的具体尺寸。,7.4.2 面板,面板是常用的非顶层容器之一。可以将其他控件放在面板中以组织一个子界面。在Swing中,可以使用

8、javax.swing.JPane类创建面板。JPanel类继承自javax.swing.JComponent类。在面板中可以使用不同的布局,按照不同的方式摆放面板中的控件。 如果创建具有双缓冲和流布局的JPanel对象,可以使用不带任何参数的构造函数,如下所示:,7.4.3 标签,不管开发什么样的GUI应用程序,都需要在界面上给用户一些提示性的信息,这时就需要使用标签控件。恰当地使用标签可以使GUI的交互界面更友好,使用户在使用的过程中有更好的体验,本节将介绍使用标签的相关知识。 javax.swing.JLabel类即标签类,开发人员可以通过其建立包含文本、图像或两者都包含的标签。JLab

9、el属于普通控件,也继承自javax.swing.JComponent类,该控件主要是用来给出提示信息的,是一种非交互的控件,一般不用于响应用户的输入,并且该控件没有修饰,从界面中是看不到该控件边界的。,7.4.4 按扭,GUI应用程序中,按钮是与用户交互使用得最多的控件之一,很多功能都是通过用户按下按钮来触发代码完成的。本节将介绍Swing中的按扭javax.swing.Jbutton的使用。 javax.swing.JButton类是最简单的按扭类型,当单击按扭时会触发动作事件,如果给按钮注册了相应的监听器,按下按钮就可以执行指定的代码,完成一定的工作。JButton类是继承自javax.

10、swing.AbstractButton类的,按钮的参数可以通过不同的构造函数初始化,,7.5 布 局 管 理,除了顶层容器控件外,其他的控件都需要添加到容器当中,容器相当于一个仓库。而布局管理器就相当于仓库管理员,采用一定的策略来管理容器中各个控件的大小、位置等属性。通过使用不同的布局管理器,可以方便地设计出各种控件组织方式的界面。常用的布局管理器有流布局、网格布局、卡片布局,本节将对这几种布局进行简要介绍。,7.5.1 流布局,流布局(FlowLayout)是一种非常简单的布局管理器,它按照控件添加的顺序,依次将控件从左至右、从上至下进行摆放,若一行不能放完则会自动转至下一行继续摆放。每一

11、行所放置的控件默认会居中显示,也就是说,若在一行中所有的控件并没有占满这一行,则这些控件会显示在此行的中间。,7.5.2 网格布局,网格布局即GridLayout布局.该布局会尽量按照给定的行数和列数排列所有的控件,添加到该布局容器中的控件都将自动调整为相同尺寸,其填充的规则是尽量使现有控件形成矩形。 若行和列的设置都不为0的话,其在形成矩形的同时会保证行数,而列数则是由控件总数与给定的行数来决定的。若行为0而列不为0的话,在形成矩形的同时会保证列数,而行数则是由控件总数与给定的列数来决定的。当容器的大小改变时,所有的控件也都会随着自动改变大小以保证尽量充满整个容器。,7.5.3 卡片布局,卡

12、片布局即CardLayout布局。在卡片布局中,布局的容器中可以添加任意多个控件,但同一时刻只能看见其中的一个控件。所有被添加的控件与容器的大小相同,也就是说,所有添加进卡片布局容器中的控件大小是相同的。可以通过调用卡片布局管理器的相应方法使指定的控件显示,这些方法包括指定下一个、一个、第一个、最后一个或第几个控件显示。,7.6 选 择 控 件,图形界面应用程序中控件是必不可少的基本元素,将各种控件有机地组合起来,便可以搭建出各种各样的图形界面,用来满足不同应用的需要。作为开发人员,必须熟练掌握各种基本控件的使用才能从容应对各种开发的需求,从本章开始将详细介绍Swing中的各种常用控件。,7.

13、6.1 控件概述,Java中所有的Swing控件都继承自javax.swing.JComponent类,而JComponent类则继承自java.awt.Container类,因此所有的Swing控件都具有AWT容器的功能,图所示为Java中所有Swing控件的继承树。,7.6.2 文本框,GUI应用程序中,文本框是使用率很高的控件。通过使用文本框和密码框,可以使应用程序与用户之间的交互变得更加方便。 Swing中提供的文本框控件通过JTextField类实现。但是JTextField只能用于输入单行文本,如果文本的长度超出了控件可以显示的范围,其会自动滚动文本。对于JTextField,所有

14、的剪切、复制、粘贴及其快捷键的操作都可以自动实现。JTextField类提供了5个构造函数,使得开发人员在创建JTextField对象的时候可以灵活选择,下面是其常用的构造函数。,7.6.3 文本区,使用上一节介绍的文本框可以方便地实现单行文本的输入,当需要输入多行文本时使用文本框就无法满足要求了,这时就需要使用文本区。Swing中专门提供了用来进行多行文本输入的文本区JTextArea。 JTextArea类是Swing中提供的用单一字体和格式显示多行文本的控件,默认情况下其不会自动换行,但可以通过设置让其自动换行。JTextArea是以跨平台的方式处理换行符,根据不同的操作系统平台,文本文

15、件中的行分隔符可以是换行符、回车或者二者的组合。,7.6.4 单选按扭、复选框,GUI应用程序中经常需要给用户提供一些选择的界面,如性别、爱好、职业等。这时根据选项情况的不同就需要使用单选按扭或复选框,本节将详细介绍Swing中的单选按扭(JRadioButton)与复选框(JCheckBox)。 1JRadioButton类简介 Swing中提供的单选按钮是JRadioButton,其继承自JToggleButton。这点很容易想通,JRadioButton也是一种能够记录状态(选中或未选中)的按钮,一共提供了8个构造器,下面只中列出了其中常用的几个。,7.6.4 单选按扭、复选框,2JCh

16、eckBox类简介 通过JRadioButton与ButtonGroup的配合使用,可以很方便地实现单项选择。若需要使用多项选择,则应该使用复选框JCheckBox。JCheckBox也是JToggleButton的子类,因为它也是一种可以记录状态的按钮。与JRadioButton不同的是,JCheckBox不需要编组使用,各个选项之间没有逻辑约束关系。,7.6.4 单选按扭、复选框,3ItemEvent事件 JRadioButton、JCheckBox与JToggleButton除了与JButton一样都会触发ActionEvnet动作事件外,JRadioButton、JCheckBox以及JToggleButton还会触发ItemEvent事件。关于ItemEvent事件需要注意以下两点。 (1)ItemEvent事件与ActionEvnet动作事件不同,不是单击按钮就会触发,而是当按钮的状态发生变化时才会触发。例如,从选中到未选中,或者从未选中到选中都会触发ItemEvent事件。 (2)ItemEvent事件的监听器需要实现ItemListener监听接口,只

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

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

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