Java程序设计简明教程 p07

上传人:E**** 文档编号:89396199 上传时间:2019-05-24 格式:PPT 页数:38 大小:76.50KB
返回 下载 相关 举报
Java程序设计简明教程 p07_第1页
第1页 / 共38页
Java程序设计简明教程 p07_第2页
第2页 / 共38页
Java程序设计简明教程 p07_第3页
第3页 / 共38页
Java程序设计简明教程 p07_第4页
第4页 / 共38页
Java程序设计简明教程 p07_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《Java程序设计简明教程 p07》由会员分享,可在线阅读,更多相关《Java程序设计简明教程 p07(38页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计,教材:Java程序设计简明教程 中国水利水电出版社,2019年5月24日星期五2时24分19秒,Java 程序设计,2,第7章 创建图形用户界面 图形用户界面(Graphical User Interface,GUI)可以使系统更生动、更易于使用。Java类库的java.awt及javax.swing包中包含了所有构成图形界面的基本组件,因而利用它们可以创建很多不同功能的用户界面。,2019年5月24日星期五2时24分19秒,Java 程序设计,3,7.1 图形用户界面 图形用户界面由组件、布局管理和事件委托处理三部分组成。组件是响应用户操作的可视图形控件,它们置于容器组件中

2、形成一个具有包含关系的层次结构,由布局管理器安排组件在容器中的位置。根据用户操作能产生事件的组件称事件源,不同的组件产生不同类型的事件,同一组件可能产生多种事件。组件提供添加监视事件发生的监视器方法,对感兴趣的事件注册监视。,2019年5月24日星期五2时24分19秒,Java 程序设计,4,创建一个图形用户界面的方法如下: (1)创建一个顶级的容器组件,一般是继承框架(Frame)的应用程序主窗口,它包含边框、标题栏、控制菜单和内容面板(Contentpane)的容器; (2)按指定的布局管理器向容器添加组件,给事件源组件添加事件监视器,注册事件处理; (3)设计事件处理程序,委托事件处理,

3、响应信息交互; (4)显示图形用户界面。,2019年5月24日星期五2时24分19秒,Java 程序设计,5,/*ch0701.java*/ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ch0701 extends JFrame implements ActionListener JTextField tf=new JTextField(10); JButton bt=new JButton(“ok“); static int i=0; public ch0701() super(

4、“图形用户界面框架“); Container c=getContentPane(); /获得窗口的内容显示层 c.setLayout(new FlowLayout(); /设置显示层的布局方式 c.add(tf);c.add(bt);setSize(200,100); /添加组件 setVisible(true); /显示窗口界面 bt.addActionListener(this); /给组件添加监听 addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); )

5、; public void actionPerformed(ActionEvent e) /事件处理程序 i=i+1; if(i%2=0) tf.setText(“aaaaa“); else tf.setText(“bbbbb“); public static void main(String args) new ch0701(); ,2019年5月24日星期五2时24分19秒,Java 程序设计,6,7.2 事件处理 用户在图形用户界面通过移动鼠标对特定图形界面元素单击、双击来实现命令的输入,为了接收用户的命令,图形用户界面的系统首先应能够识别这些鼠标和键盘的操作并做出相应的响应。通常每一个

6、键盘或鼠标操作会引发一个系统预先定义好的事件,用户程序只需要编制代码,来定义每个特定事件发生时程序应做了何种响应即可。这些代码会在它们对应的事件发生时由系统自动调用,这就是图形用户界面中事件和事件响应的基本原理。,2019年5月24日星期五2时24分19秒,Java 程序设计,7,7.2.1 事件和事件源 在Java中,当单击了某个按钮,或组件的状态发生了某种变化,或按下了某个键盘键时,就被认为产生了某个事件(event)。 产生事件的组件称为事件源,如按钮是单击按钮事件的事件源。一个事件是事件类的实例。事件类的根类是java.util.EventObject。事件对象包含与事件有关的一切属性

7、。可以使用EventObject类中的方法getSource()获得事件源。,2019年5月24日星期五2时24分19秒,Java 程序设计,8,7.2.2 事件注册、监听和处理 Java使用事件委托处理模型来处理事件,在源对象上的外部,用户行为引发事件。一个对象如果接收事件,则称该对象为监听器(listener)。并不是所有的对象都能接收事件。一个对象要成为监听器,必须由源对象注册为监听器。源对象保存一个监听器列表,通过监听器对象上的事件处理方法来通知所有注册的监听器,事件处理方法也称为处理器(handler)。,2019年5月24日星期五2时24分19秒,Java 程序设计,9,对象要成为

8、监听器,必须实现标准处理方法。处理器是在相应的事件监听器接口中定义的。Java为每种图形事件类型提供一个监听器接口。例如,ActionEvent对应的监听器接口是ActionListener,它的每个监听器都应该实现ActionListener接口。,2019年5月24日星期五2时24分19秒,Java 程序设计,10,7.2.3 事件处理 经过用户对窗口的任意操作会发生许多的事件,这些事件会被Java运行环境“自动分配”给对应的事件处理方法,只要在程序中专注于使用事件处理方法来处理各种事件,就能使程序适当地响应用户的操作。 对于使用事件处理方法并不困难,重点是一定要弄清楚各环节衔接的细节,以

9、免发生搞错对象的情况。前面已介绍过如何判断组件可能发生的事件,接下来我们来看如何编写和指定各组件的事件处理方法。,2019年5月24日星期五2时24分19秒,Java 程序设计,11,1. 定义接口法 每一个事件类都有一个独一无二的事件处理方法接口,如处理MouseEvent事件类的对应接口为MouseListener接口;而处理ActionEvent事件类的对应接口为ActionListener接口。,2019年5月24日星期五2时24分19秒,Java 程序设计,12,采用定义接口法建立动作事件监听器的步骤: (1)引入系统事件类包,如import java.awt.event.*; (2

10、)在定义类的同时声明实现动作事件监听器接口,如Implements ActionListener。 (3)在方法中调用事件源对象addActionListener,注册事件源对象的事件监听者,如btn.addActionListener(this)。 (4)实现actionPerformed方法,这个方法是接口中的方法,应该实现这个方法,加入代码以响应事件的发生。如单击按钮时,系统将产生ActionEvent事件,动作事件监听者就调用actionPerformed方法处理这个事件。,2019年5月24日星期五2时24分19秒,Java 程序设计,13,动作事件类ActionEvent有一些常用

11、的方法: (1)public String getActionCommand( ):返回事件源的标题。如btn的标题为“按钮”。 (2)public Object getSource( ):返回产生事件的对象引用。如btn。 (3)public int getModifiers( ):返回事件发生时功能控制键的状态,它们可能是功能键常数shift_mask、ctrl_mask、alt_mask。如果getModifiers的返回值不等于这些常数中的任何一个,说明发生事件时没有按住功能控制键不放。,2019年5月24日星期五2时24分19秒,Java 程序设计,14,2. 适配器法 通过继承Ja

12、va所提供的各事件处理方法接口对应的Adapter类(也称为事件适配器)。 使用Adapter类的目的就是使这些具有很多方法的监听器接口,集合成为一个抽象类。我们只需要继承这个抽象类,然后覆盖想要的方法即可。,2019年5月24日星期五2时24分19秒,Java 程序设计,15,3. 匿名类法 匿名类法可以说是类继承法的扩展,其主要目的是解决某些“变量存取”的问题,匿名类法是指声明一个类时不给它命名。,2019年5月24日星期五2时24分19秒,Java 程序设计,16,7.3 窗口与组件 组成图形用户界面要用到组件(Component),它是专门用于建立图形用户界面的Java类,是构成GUI

13、的基本要素,它主要有两大类:容器和控制组件。控制组件一般作为一个对象放置在容器(Container)内,一个容器就是能容纳和排列组件的对象,如JApplet、JPanel、JFrame等。组件通过容器的add方法把自己加入到容器中。,2019年5月24日星期五2时24分19秒,Java 程序设计,17,7.3.1 窗口JFrame类 JFrame是在Swing中经常使用到的组件,是最底层的容器,可称之为“窗口”。在此之前的例子当中使用了JFrame,这里我们要更清楚地知道怎样用JFrame类建立窗口。JFrame窗口允许指定关闭窗口的默认模式。JFrame对象的布局管理器默认为边界布局管理器。

14、,2019年5月24日星期五2时24分19秒,Java 程序设计,18,7.3.2 面板JPanel类 面板也是Java中常用到的容器之一,JPanel除了可以让组件加入外,还可以将JPanel作为组件加入到JFrame中去。有效地利用JPanel可以使版面管理更为容易。JPanel中不仅可以添加组件,还可添加其他面板。JPanel默认使用流式布局管理器。,2019年5月24日星期五2时24分19秒,Java 程序设计,19,7.3.3 标签JLabel类 标签(JLabel)是专门用于显示输出的,它的功能为显示一串“只读文字”。它常用于在屏幕上显示一些提示性、说明性的文字。 7.3.4 按钮

15、JButton类 按钮是最常用使用的组件之一,其主要功能是用来获得用户的输入,但是在某些情况下也可以当做输出组件,这是因为按钮组件包含了一个“标签”。JButton类可产生ActionEvent事件。,2019年5月24日星期五2时24分19秒,Java 程序设计,20,7.3.5 文本框JTextField类与JPasswordField类 文本框(JTextField用来接收用户从键盘上的输入,也可用来显示输出单行文本信息。JPasswordField类是继承JTextField类而来,是一个专门用来输入“密码”的单行文本框。即对用户输入的字符采用密文的形式进行显示,如“*”。JTextF

16、ield类与JPasswordField类均可产生ActionEvent事件。,2019年5月24日星期五2时24分19秒,Java 程序设计,21,7.3.6 文本区JTextArea类 文本区(JTextArea)允许用户编辑具有多行的文本,可以用于输出信息,也可以用于接收信息。文本区不会产生ActionEvent事件,通常用一个外部事件(即事件由另外GUI组件触发)来处理JTextArea中的文本。另外,当JTextArea的内容装满时不会产生滚动条,而是自动加大文本区的大小。,2019年5月24日星期五2时24分19秒,Java 程序设计,22,7.3.7 列表组件JComboBox类和JList类 JComboBox组件具有一个下拉式列表,可用来存放多个文字选项,在显示方式上,使用“弹出式菜单”动态地显示选项,并且永远只会将被选择的选项显示出来。要改变被选中的选项,可以单击下箭头,从选项框中选

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

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

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