程序设计实用案例选讲(袁卫华)案例选讲第六次

上传人:m**** 文档编号:584175593 上传时间:2024-08-30 格式:PPT 页数:40 大小:422KB
返回 下载 相关 举报
程序设计实用案例选讲(袁卫华)案例选讲第六次_第1页
第1页 / 共40页
程序设计实用案例选讲(袁卫华)案例选讲第六次_第2页
第2页 / 共40页
程序设计实用案例选讲(袁卫华)案例选讲第六次_第3页
第3页 / 共40页
程序设计实用案例选讲(袁卫华)案例选讲第六次_第4页
第4页 / 共40页
程序设计实用案例选讲(袁卫华)案例选讲第六次_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《程序设计实用案例选讲(袁卫华)案例选讲第六次》由会员分享,可在线阅读,更多相关《程序设计实用案例选讲(袁卫华)案例选讲第六次(40页珍藏版)》请在金锄头文库上搜索。

1、计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室Java图形编程(图形编程(3) 一、复习一、复习二、知识点讲解:二、知识点讲解:1)布局管理器)布局管理器2)GUI标准组件标准组件3)Java的事件处理机制的事件处理机制三、小结和作业三、小结和作业计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1)图形用户界面各种元素和成分的分类图形用户界面各种元素和成分的分类1.容器:是用容器:是用来组织其他界面成分和元素的单元来组织其他界面成分和元素的单元。 JFrame JPanel JScrollPane JApplet一、一、 复习复习2.控件组件控件组件

2、图形用户界面的最小单位,里面不能再包含其他的成分。图形用户界面的最小单位,里面不能再包含其他的成分。如命令按钮如命令按钮JButton,单行文本框,单行文本框JTextField等都是控件组件。等都是控件组件。 java中通常将中通常将容器和控件组件容器和控件组件本身作为本身作为对象对象来表达来表达。3.用户自定义成分用户自定义成分 主要包括绘制图形,设置字体主要包括绘制图形,设置字体Fonts类,设置颜色类,设置颜色Color类,类,显示图像和实现动画效果等。用户自定义成分的主要作用显示图像和实现动画效果等。用户自定义成分的主要作用是装饰和美化,不能响应用户的动作,没有交互功能。是装饰和美化

3、,不能响应用户的动作,没有交互功能。计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室 javax.swing 包包 常见容器常见容器JFrame JScrollPane JPanel 1. 扩展扩展 java.awt.Frame 类类2. 用于在用于在 Swing 程序中创程序中创建窗口建窗口3. 包含边框、标题和用于包含边框、标题和用于关闭和图标化窗口的按钮关闭和图标化窗口的按钮4.默认情况下表现为一种不默认情况下表现为一种不可视且最小化状态可视且最小化状态1. 中间容器中间容器2. 用于将较小的轻量级用于将较小的轻量级组件组合在一起组件组合在一起3. 与内容窗格相似,面

4、与内容窗格相似,面板在默认情况下不透明板在默认情况下不透明1.滚动条面板,管滚动条面板,管理视区、滚动条及理视区、滚动条及可选的行和列的标可选的行和列的标题视区题视区u知识点之知识点之一一:容器组件容器组件一、一、 复习复习计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1.容器组件之容器组件之JFrameu特征特征JFrame组件描述的是一种带标题框,并可以改变大小的窗口。组件描述的是一种带标题框,并可以改变大小的窗口。JFrame组件的对象为一个组件的对象为一个JFrame窗口,默认情况下表现为一窗口,默认情况下表现为一种不可视且最小化状态。种不可视且最小化状态。JFr

5、ame是是Java Application程序的图形用户界面容器,可以被程序的图形用户界面容器,可以被其他容器创建并弹出成为独立的容器。其他容器创建并弹出成为独立的容器。JFrame是最顶层容器存在,不能被其他容器所包含。是最顶层容器存在,不能被其他容器所包含。u知识点之知识点之一一:容器组件容器组件一、一、 复习复习计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室u知识点之知识点之二二:容器组件容器组件1.Swing组件之组件之JFrameu主要方法主要方法dispose():在编写窗口关闭操作的代码时需要用到关闭在编写窗口关闭操作的代码时需要用到关闭JFrame的的di

6、spose( )方法,并回收创建窗口所使用的全部资方法,并回收创建窗口所使用的全部资源。源。public void validate():验证此容器及其所有子组件。验证此容器及其所有子组件。 使用使用 validate() 方法会使容器再次布置其子组件。已经布置方法会使容器再次布置其子组件。已经布置容器后,在修改此容器中组件的时候(在容器中添加或移容器后,在修改此容器中组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方除组件,或者更改与布局相关的信息),应该调用上述方法。法。 一、一、 复习复习计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室u知

7、识点之知识点之一一:容器组件容器组件2.Swing容器组件之容器组件之JPanelu特征特征中间容器,用于将较小的轻量级组件组合在一起,与内容中间容器,用于将较小的轻量级组件组合在一起,与内容窗格相似,面板在默认情况下不透明。窗格相似,面板在默认情况下不透明。一、一、 复习复习3. Swing容器组件之容器组件之JScrollPaneu特征特征管理视区、滚动条及可选的行和列的标题视区。管理视区、滚动条及可选的行和列的标题视区。计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1.布局管理器负责确定组件在窗口中的位置和大小。布局管理器负责确定组件在窗口中的位置和大小。 u在在J

8、ava里安置一个组件到一个窗体中去,有如下特点:里安置一个组件到一个窗体中去,有如下特点:它是全代码的。它是全代码的。没有控制安放组件的没有控制安放组件的“资源资源”。组件被安放到一个被组件被安放到一个被“布局管理器布局管理器”控制的窗体中,由控制的窗体中,由“布局管理器布局管理器”根据根据add()方法来安放组件。方法来安放组件。大小,形状,组件位置与其它系统的布局管理器显著的不大小,形状,组件位置与其它系统的布局管理器显著的不同。同。布局管理器使我们的小程序或应用程序适合窗口的大小布局管理器使我们的小程序或应用程序适合窗口的大小.如果窗口的尺寸改变,组件的大小、形状和位置都会改变。如果窗口

9、的尺寸改变,组件的大小、形状和位置都会改变。二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室2. java.awt包包常用的常用的五种布局编辑类五种布局编辑类u每个布局编辑类对应一种布局策略,分别是每个布局编辑类对应一种布局策略,分别是FlowLayout:流式布局管理器:流式布局管理器BorderLayout:边界布局管理器:边界布局管理器GridLayout:网格布局管理器:网格布局管理器CardLayoutGridBagLayout二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器

10、布局管理器计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室3.一个容器确定它的布局管理方式的步骤一个容器确定它的布局管理方式的步骤首先创建一个布局管理器类的对象。首先创建一个布局管理器类的对象。然后将此对象设置为自己的布局管理器。然后将此对象设置为自己的布局管理器。setLayout(new FlowLayout();/ 设置为流布局方式设置为流布局方式相当于执行下面两句代码:相当于执行下面两句代码:FlowLayout flout=new FlowLayout();setLayout(flout);如果容器没有设置布局编辑器,其中的对象会互相覆盖、如果容器没有设置布局编辑

11、器,其中的对象会互相覆盖、遮挡,影响使用,所以必须为每个容器设置一个合适的布遮挡,影响使用,所以必须为每个容器设置一个合适的布局编辑器局编辑器。二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室 1)流布局管理器)流布局管理器FlowLayoutFlowLayout是容器是容器JPanel和和JApplet默认的布局编辑策略。默认的布局编辑策略。按照从左至右,从上至下的顺按照从左至右,从上至下的顺序放置组件。序放置组件。一行排满之后就下转到下一行一行排满之后就下转到下一行继续从左至右排列。继续从左至右排

12、列。每一行中的组件都居中排列。每一行中的组件都居中排列。setLayout()方法作用:设置容方法作用:设置容器的布局方式。器的布局方式。 二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室public class FlowLayout1 extends JFrameFlowLayout1()setLayout(new FlowLayout();for(int i=0;i20;i+) add(new JButton(Button+i);setSize(300,300);setVisible(true);

13、 setLocation(500,200);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public static void main(String args)new FlowLayout1();二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器 1)流布局管理器)流布局管理器FlowLayout计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室BorderLayout布局方式是布局方式是JFrame,JDialog等容器的默认布局方式。等容器的默认布局方式。这种布局方式将整个容器

14、划分为这种布局方式将整个容器划分为四个边缘区和一个中央区。四个边缘区和一个中央区。BorderLayout.NORTH:将组件放在面板北侧。:将组件放在面板北侧。BorderLayout.SOUTH:将组件放在面板南侧。:将组件放在面板南侧。BorderLayout.EAST:将组件放在面板东侧。:将组件放在面板东侧。BorderLayout.WEST:将组件放在面板西侧。:将组件放在面板西侧。BorderLayout.CENTER:将组件放在面板的中央位置:将组件放在面板的中央位置 二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器2)边界布局管理器)边界布局管理器B

15、orderLayout计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室add(BorderLayout.NORTH,new JButton(North);add(BorderLayout.SOUTH,new JButton(South);add(BorderLayout.EAST,new JButton(East);add(BorderLayout.WEST,new JButton(West);add(BorderLayout.CENTER,new JButton(Center);二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器2)边界布局管理器)

16、边界布局管理器BorderLayout计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室uBorderLayout布局方式中放置布局方式中放置组件的特点组件的特点 :分布在北部和南部区域的组件分布在北部和南部区域的组件将横向扩展至占据整个容器的长将横向扩展至占据整个容器的长度。度。分布在东部和西部的组件将伸分布在东部和西部的组件将伸展至占据容器剩余部分的全部宽展至占据容器剩余部分的全部宽度。度。最后剩余的部分将分配给位于最后剩余的部分将分配给位于中央的组件。中央的组件。二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器2)边界布局管理器)边界布局管理器

17、BorderLayout计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室uBorderLayout布局方式中放置布局方式中放置组件的特点组件的特点 :如果某个区域没有分配组件,如果某个区域没有分配组件,则其他组件可以占据它的空间。则其他组件可以占据它的空间。如果北部没有分配组件,则西部、如果北部没有分配组件,则西部、东部和中部的组件将向上扩展到东部和中部的组件将向上扩展到容器的最上方,如果西部和东部容器的最上方,如果西部和东部没有分配组件,则位于中央的组没有分配组件,则位于中央的组件将横向扩展到容器的左右边界件将横向扩展到容器的左右边界。二、二、 知识点讲解知识点讲解u知识

18、点之知识点之二二:布局管理器布局管理器2)边界布局管理器)边界布局管理器BorderLayout计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室u注意问题注意问题使用使用BorderLayout放置组件放置组件时,一定要指定组件放置的时,一定要指定组件放置的方向,如方向,如add(BorderLayout.NORTH,new JButton(North);否则默认情况下组件都放置否则默认情况下组件都放置在面板的中央,后面放置的在面板的中央,后面放置的组件会盖住前面放置的组件。组件会盖住前面放置的组件。二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器

19、2)边界布局管理器)边界布局管理器BorderLayout 计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室u布局特点布局特点网格布局网格布局GridLayout首先将窗口分为首先将窗口分为n行行m列,然后按照从左至右,列,然后按照从左至右,从上至下的方式放置组件。从上至下的方式放置组件。u布局步骤布局步骤(1) 创建创建GridLayout对象作为布局编辑器。对象作为布局编辑器。指定划分网格的行数和列数,并使用容器的指定划分网格的行数和列数,并使用容器的setLayout( )方法为容方法为容器设置这个布局编辑器:器设置这个布局编辑器:setLayout(new Grid

20、Layout(行数行数, 列数列数)。(2) 调用容器的方法调用容器的方法add( )将组件加入容器。组件填入容器的顺序将组件加入容器。组件填入容器的顺序将按照第一行第一个、第一行第二个将按照第一行第一个、第一行第二个、第二行第一个、第二行第一个最后最后一行最后一个进行。一行最后一个进行。每个网格中都必须填入组件,如果希望某个网格为空白,可以为每个网格中都必须填入组件,如果希望某个网格为空白,可以为它加入一个空的标签:它加入一个空的标签:add (new Label( )。二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理器3)网格布局管理器)网格布局管理器GridLay

21、out计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室GridLayout1()/ GridLayout1.java setLayout(new GridLayout(7,3); for(int i=0;i20;i+) add(new JButton(Button+(i+1); setSize(300,300);setVisible(true); setLocation(500,200);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);二、二、 知识点讲解知识点讲解u知识点之知识点之二二:布局管理器布局管理

22、器3)网格布局管理器)网格布局管理器GridLayout计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室标签标签JLabel按钮按钮JButton单行文本框单行文本框JTextField多行文本区多行文本区JTextArea二、二、 知识点讲解知识点讲解u知识点之知识点之三三:组件组件计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1.标签标签JLabel文本显示,主要作用是进行信息说明。文本显示,主要作用是进行信息说明。u创建标签创建标签JLabel label1=new JLabel(请输入您要显示的图像文件名请输入您要显示的图像文件名);u常用方法

23、常用方法setText(新字符串新字符串):修改标签上显示的文本。:修改标签上显示的文本。getText( ):获得标签上的文本内容。:获得标签上的文本内容。u产生事件产生事件Label不是事件源,不能引发事件。不是事件源,不能引发事件。二、二、 知识点讲解知识点讲解u知识点之知识点之三三:组件组件计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室2.按钮按钮JButtonu创建按钮创建按钮JButton okBtn=new JButton(“OK”);u常用方法常用方法getLabel( )方法:返回按钮的标签字符串。方法:返回按钮的标签字符串。setLabel(Strin

24、g s)方法:把按钮的标签设置为字符串方法:把按钮的标签设置为字符串s。u产生事件:产生事件:ActionEvent动作事件动作事件 二、二、 知识点讲解知识点讲解u知识点之知识点之三三:组件组件事件及其事件及其产产生原因生原因单击单击按按钮钮、列表框中的、列表框中的选项选项,选择选择菜菜单项单项,文本,文本框中的回框中的回车车等等注册注册给监给监听者的方法听者的方法事件源事件源对对象象.addActionListener(监监听者听者)监监听者要听者要实现实现的接口的接口ActionListener事件事件处处理的接口方法理的接口方法actionPerformed(ActionEvent e

25、)计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室3.文本框文本框JTextFieldu创建文本对象创建文本对象JTextField inputFld=new JTextField(20);创建一个能容纳创建一个能容纳20个字符的文本框。个字符的文本框。 u常用方法常用方法getText():以字符串形式返回文本框中的内容。:以字符串形式返回文本框中的内容。setText(String str):将文本框中显示的内容设置为:将文本框中显示的内容设置为str。setEditable(Boolean b):将文本区域的内容设置为可编辑的:将文本区域的内容设置为可编辑的或者不可编

26、辑的。或者不可编辑的。isEditable():判断当前的文本区域是否处于可编辑状态。:判断当前的文本区域是否处于可编辑状态。二、二、 知识点讲解知识点讲解u知识点之知识点之三三:组件组件计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室3.文本框文本框JTextFieldu常用方法常用方法select(int start, int end):根据指定的起止位置选定一段:根据指定的起止位置选定一段文本。文本。selectAll( ):选定文本区框中的所有文本。:选定文本区框中的所有文本。u产生事件产生事件ActionEvent 动作事件动作事件用户在文本框中按用户在文本框中按

27、回车键回车键时触发时触发ActionEvent事件。事件。 二、二、 知识点讲解知识点讲解u知识点之知识点之三三:组件组件计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室4.多行文本区多行文本区JTextAreau创建多行文本区对象创建多行文本区对象JTextArea outputArea=new JTextArea(10,30);创建一个创建一个10行行30列的多行文本区。列的多行文本区。u常用方法常用方法append(String s)方法:在当前文本区域已有文本的后面方法:在当前文本区域已有文本的后面添加字符串参数添加字符串参数s指定的文本内容。指定的文本内容。ins

28、ert(String s, int index)方法:将字符串方法:将字符串s插入到已有文插入到已有文本的指定序号处。本的指定序号处。其他方法同其他方法同JTextField。二、二、 知识点讲解知识点讲解u知识点之知识点之三三:组件组件计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室4.多行文本区多行文本区JTextAreau常用方法常用方法append(String s)方法:在当前文本区域已有文本的后面方法:在当前文本区域已有文本的后面添加字符串参数添加字符串参数s指定的文本内容。指定的文本内容。二、二、 知识点讲解知识点讲解u知识点之知识点之三三:组件组件if (e

29、.getSource() = adds) result.append(n); result.append(“您单击了插入按钮,正在您单击了插入按钮,正在 执行插入新记录操作执行插入新记录操作n);计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1)Java的事件处理机制的事件处理机制1.委托事件模型委托事件模型Java采用采用委托事件模型委托事件模型来进行事件处理,不同的事件由不来进行事件处理,不同的事件由不同的同的监听者监听者处理。处理。u事件源:产生事件的组件事件源:产生事件的组件。鼠标,鼠标,文本框,文本框,按钮,选择项目按钮,选择项目,菜单项目,菜单项目等产生等产生

30、各种操各种操作的对象。作的对象。u事件:即其所产生的动作状态事件:即其所产生的动作状态。用户执行的动作:用户执行的动作:单击鼠标,按按钮,选择项目单击鼠标,按按钮,选择项目,单击菜,单击菜单条,在文本框中按下回车键等。单条,在文本框中按下回车键等。u知识点之知识点之四四:事件处理机制事件处理机制三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1)Java的事件处理机制的事件处理机制1.委托事件模型委托事件模型事件源事件源注册:注册:btn.addActionListener(监听者对象监听者对象);ActionEvent事件事件事件监听器(监事件

31、监听器(监听者)听者)实现接口:实现接口:public void actionPerformed(ActionEvent e)注册注册触发事件触发事件调用并传递参数调用并传递参数u知识点之知识点之四四:事件处理机制事件处理机制三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1.委托事件模型委托事件模型u处理过程处理过程如果事件源希望进行事件处理,如果事件源希望进行事件处理,需要向能够处理这种类型事件的需要向能够处理这种类型事件的监监听者听者进行注册。进行注册。 Button btn=new Button(“确定确定”); btn.addActio

32、nListener(this);监听者可以是包容事件源的容器,监听者可以是包容事件源的容器,也可以是另外的对象也可以是另外的对象。u知识点之知识点之四四:事件处理机制事件处理机制public class GuessNumber extends JFrame implements ActionListener类类GuessNumber 是动作事件的监听者。是动作事件的监听者。三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室1.委托事件模型委托事件模型 事件监听者必须实现相关接口,监听者需要对它所实事件监听者必须实现相关接口,监听者需要对它所实现接口

33、的所有抽象方法写出具体的方法体,对应事件源上现接口的所有抽象方法写出具体的方法体,对应事件源上发生事件的处理代码就写在这些方法体里。发生事件的处理代码就写在这些方法体里。如对如对JButton上发生的动作事件的处理代码应该写在上发生的动作事件的处理代码应该写在JButton对象所注册的监听者的对象所注册的监听者的actionPerformed( )方法中。方法中。当事件源上发生监听者可以处理的事件时,事件源把这当事件源上发生监听者可以处理的事件时,事件源把这个事件作为实际参数传递给监听者中负责处理这类事件的个事件作为实际参数传递给监听者中负责处理这类事件的方法方法(委托委托),这个方法被系统自

34、动调用执行后,事件就得,这个方法被系统自动调用执行后,事件就得到了处理。到了处理。u知识点之知识点之四四:事件处理机制事件处理机制三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室2. 监听者是包容事件源的容器监听者是包容事件源的容器JFramepublic class GuessNumber extends JFrame implements ActionListenerJButton okBtn;/确定按钮确定按钮public void init()okBtn=new JButton(确定确定);/定义定义JFrame中包含的组件中包含的组件o

35、kBtn.addActionListener(this);/注册动作事件注册动作事件 public void eventHandle()/触发动作事件时的处理过程触发动作事件时的处理过程public void actionPerformed(ActionEvent e)if(e.getSource()=okBtn)/如果触发动作事件的事件源是确定按钮如果触发动作事件的事件源是确定按钮okBtneventHandle(); u知识点之知识点之四四:事件处理机制事件处理机制三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室3.actionPerform

36、ed()方法的执行流程方法的执行流程1.当事件源上发生监听者可以处理的事当事件源上发生监听者可以处理的事件时,件时,如鼠标单击如鼠标单击JButton按钮或者在按钮或者在JTextField中敲回车键。中敲回车键。2. 事件源事件源JButton把这个事件(把这个事件(ActionEvent e)作为实际参)作为实际参数传递给事件监听器(数传递给事件监听器(类类GuessNumber)中负责处理这类)中负责处理这类事件的方法事件的方法(actionPerformed(ActionEvent e),一旦有参,一旦有参数传递到数传递到actionPerformed方法中,这个方法就被方法中,这个方

37、法就被系统自动系统自动调用执行,调用执行,事件就事件就按照程序代码中定义的流程得到了处理。按照程序代码中定义的流程得到了处理。三、知识点讲解三、知识点讲解u知识点之知识点之四四:事件处理机制事件处理机制计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室4. AWTEvent类体系结构类体系结构EventObjectAWTEventActionEventTextEventAdjustmentEventComponentEventItemtEventContainerEventWindowEventFocusEventInputEventPaintEventMouseEventK

38、eyEventu知识点之知识点之四四:事件处理机制事件处理机制三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室5.AWTEvent需要注意的问题需要注意的问题ujava.awt.event包中定义了包中定义了11个监听者接口,每个接口内个监听者接口,每个接口内部包含了若干处理相关事件的抽象方法。部包含了若干处理相关事件的抽象方法。uMouseEvent类有两个监听者接口与之相对应类有两个监听者接口与之相对应 MouseListener接口接口 具体事件包括:具体事件包括:MOUSE_CLICKED,MOUSE_ENTERED,MOUSE_EXIT

39、ED,MOUSE_PRESSED,MOUSE_RELEASEDMouseMotionListener接口接口 具体事件包括:具体事件包括:MOUSE_DRAGGED,MOUSE_MOVEDu知识点之知识点之四四:事件处理机制事件处理机制三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室5. AWTEvent需要注意的问题需要注意的问题u一个事件类可能对应多个事件。一个事件类可能对应多个事件。如如KeyEvent类对应三个具体事件类对应三个具体事件KEY-PRESSED(键按下键按下)KEY-RELEASED(键松开键松开)KEY-TYPED(击键击

40、键)u知识点之知识点之四四:事件处理机制事件处理机制三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室6.事件监听器是一个内部类的情况事件监听器是一个内部类的情况u可以定义一个继承了可以定义一个继承了ActionListener接口的内部类,作为一个事接口的内部类,作为一个事件监听器件监听器定义类定义类GuessNumber1时,不需要继承动作事件监听器接口时,不需要继承动作事件监听器接口ActionListenerpublic class GuessNumber1 extends JFrame定义好的组件添加事件监听器,同定义好的组件添加事件监听

41、器,同GuessNumber.java。GuessNumber1()okBtn.addActionListener(new ActionEventHandler();/注册动作事件注册动作事件在在GuessNumber1类中定义一个继承了动作事件监听器接口类中定义一个继承了动作事件监听器接口ActionListener的内部类的内部类ActionEventHandler(自定义的类名),并在该(自定义的类名),并在该类中实现接口类中实现接口ActionListener的方法的方法actionPerformed()。三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学

42、院网络工程教研室6. 事件监听器是一个内部类的情况事件监听器是一个内部类的情况u可以定义一个继承了可以定义一个继承了ActionListener接口的内部类,作为一接口的内部类,作为一个事件监听器个事件监听器public class GuessNumber1 extends JFrame GuessNumber1()okBtn.addActionListener(new ActionEventHandler();numJtf.addActionListener(new ActionEventHandler();class ActionEventHandler implements Action

43、Listenerpublic void actionPerformed(ActionEvent e) /监听者是一个内部类监听者是一个内部类ActionEventHandlerActionEventHandlerpublic void eventHandle()/触发动作事件时的处理过程触发动作事件时的处理过程三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室7. 事件监听器是一个匿名内部类的情况事件监听器是一个匿名内部类的情况如果只创建某个类的一个对象,就不需要为这个类命名了,如果只创建某个类的一个对象,就不需要为这个类命名了,这就是匿名内部类。

44、这就是匿名内部类。定义类定义类GuessNumber3.java时,不需要继承动作事件监听器接口时,不需要继承动作事件监听器接口ActionListenerpublic class GuessNumber3 extends JFrame public void GuessNumber3()三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室7. 事件监听器是一个匿名内部类的情况事件监听器是一个匿名内部类的情况第二步第二步给定义好的组件以匿名内部类的形式添加事件监听器给定义好的组件以匿名内部类的形式添加事件监听器public class GuessNu

45、mber3 extends JFrame public void GuessNumber3()okBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (e.getSource() = okBtn) eventHandle(); else if (e.getSource() = numJtf) eventHandle(););/ 使用匿名内部内注册动作事件使用匿名内部内注册动作事件 三、知识点讲解三、知识点讲解计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程

46、教研室8.事件监听器编程总结事件监听器编程总结实现事件监听器接口有三种途径:实现事件监听器接口有三种途径:GuessNumber类自身是一个事件监听器类自身是一个事件监听器设计一个内部类作为一个事件监听器设计一个内部类作为一个事件监听器匿名内部类实现事件监听器匿名内部类实现事件监听器很多教材和参考书中建议为事件处理设计一个专门的内部类,很多教材和参考书中建议为事件处理设计一个专门的内部类,而不要将一个已经存在的类转换为监听器。而不要将一个已经存在的类转换为监听器。三、知识点讲解三、知识点讲解u知识点之知识点之四四:事件处理机制事件处理机制计算机科学与技术学院网络工程教研室计算机科学与技术学院网络工程教研室作业详见实验指导书。作业详见实验指导书。三、三、 小结和作业小结和作业

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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