收藏 分销(赏)

Java项目化教程.ppt

上传人:a199****6536 文档编号:10251428 上传时间:2025-04-30 格式:PPT 页数:321 大小:5.38MB
下载 相关 举报
Java项目化教程.ppt_第1页
第1页 / 共321页
Java项目化教程.ppt_第2页
第2页 / 共321页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java面向对象程序设计,什么是Java?,什么是面向对象?,WHAT?,WHY?,为什么要学习Java语言?,HOW?,1、上课专心,做好笔记,2、上机作业认真完成,实验上课例题,3、消化每次课的内容,4、不懂就问,5、树立信心,课程目标,1、建立面向对象程序设计的思想,2、掌握JAVA语言的基本语法,3、掌握图形界面的设计,4、掌握使用Java语言实现多线程,异常处理,输入输出,网络通信等程序的编写,5、掌握数据库的连接和访问,任务一 开发平台搭建,本节目标:,掌握Java 程序运行环境的配置,理解Java 虚拟机(JVM),能够使用Eclipse开发Java程序。,1.1Java的起源,Sun Microsystems 于1995年推出,1991,年,Sun,公司的,James Gosling,等人开始开发名称为,Oak,的语言。希望用于控制嵌入在有线电视交换盒、,PDA,等的微处理器,1994,年将,Oak,语言更名为,Java,Java 既安全、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题,1.2.1Java对Internet影响,Internet使Java成为网上最流行的编程语言,Java对Internet的影响也意义深远,在Java出现以前,几乎没有什么工具可以在 Internet上执行动态交互程序,Applet程序可以对用户的输入和操作做出响应,1.2.2 Java虚拟机,Java是一种既面向对象又可跨平台的语言,它用于创建单机应用程序、基于网络的程序和消费类设备程序。例如:移动电话和掌上导航系统,Java 字节码,(可跨平台),Windows,Linux,Solaris,运行,编译,Java,源程序代码,JVM,Java,虚拟机,1.2.2 Java虚拟机,可运行Java字节码的虚拟计算机系统,它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信,用户,USER,字节码程序,JVM,(,Java,虚拟机,),操作系统,硬 件,Java虚拟机的运行过程,编译时,.java,(源代码),.class,(字节码),运行时,解释器,硬件,网络,字节码校验器,类加载器,JIT代码,生成器,1.3 Java的特点,简单,Java 设计人员删除了C+中许多复杂的功能,如指针操纵和运算符重载等,面向对象,在 Java 中任何东西都是对象。因此,重点集中在数据、应用程序中操作对象的方法以及过程上,跨平台,一次编译,到处运行,健壮性,Java 在编译和解释时都会检查代码,1.3 Java的特点,安全性,Java 提供了用于执行程序的受控环境,以及多层次的安全控制,可移植性,Java 可用于开发能够在多个平台、操作系统和图形用户界面之间移植的应用程序,多线程,Java 程序使用称为“多线程”的进程同时处理多项任务,动态性,不会因为程序的更新而重新编译程序,1.4 Java程序的开发,JDK是有助于程序员开发Java程序的Java开发工具包 j2sdk1.4.2_02,了解安装目录:,bin目录:存放可执行文件;,lib目录:存放Java的类库文件;,include目录:存放用于本地方法的文件;,demo目录:存放演示程序;,jre目录:存放Java运行环境文件,配置环境变量,演示环境变量的配置,单击,右键,选择高级,选择路径,添加路径,Java工具集,javac:用于编译Java 源代码的编译器,语法:javac 选项 源文件,源文件以扩展名.java 结尾,选项可以包括:,-classpath,-d,java:用于执行 Java 字节码的解释器,java 选项 类名称 参数,选项可以包括,-classpath,-version,Java,API文档,选,择,包,选择包中的,接口或类,可查看相应帮助,1.4.2开发Java程序的步骤,创建Java源程序,Java源程序一般用java作为扩展名,是一个文本文,件,用Java语言写成,可以用任何文本编辑器创建,与编辑;,编译源程序,Java编译器,“javac”,读取你的Java源程序并翻译,成Java虚拟机能够明白的指令集合,且以字节码的,形式保存在文件中。通常,字节码文件以class作为,扩展名,;,运行class(字节码)文件,Java解释器读取字节码,取出指令并且翻译成计算,机能执行的代码,完成运行过程;,第一个Java程序,/*,*此类用于在屏幕上显示消息。,*,*/,class Message,/*,*这是一个 main 方法,*/,public static void main(String args),/*输出此消息*/,System.out.println(欢迎来到 Java 世界!);,在记事本编辑Java程序,public class Message,/*,*这是一个 main 方法。,*/,public static void main(String args),/*输出此消息*/,System.out.println(欢迎来到 Java 世界!);,演示编辑和保存Java程序,依次选择,程序,附件,记事本,单击,开始,编译和运行,演示编译和运行Java程序,单击,开始,进入程序所,保存的目录,依次选择,程序,-,附件,-,命令提示符,编译,Javac Message.java,运行,java Message,输出结果,分析程序 3-1,符号/*/指示中间的语句是该程序中的注释。,多行注释以/*开始,以*/结束。,单行注释以/开始,以行末结束,java文档注释使用/*,*/,关键字 class 声明类的定义,还帮助编译器理解它是一个类的声明,整个类及其所有成员都是在一对大括号中(即 和 之间)定义的。它们标志着类定义块的开始和结束,分析程序,3-2,程序从 main()方法开始执行,关键字 public 是一个访问说明符,控制类成员的可见度和作用域,关键字 static 允许调用 main()方法,而无需创建类的实例,关键字 void 告诉编译器 main()方法在执行时不返回任何值,分析程序 3-3,main()方法是所有Java 应用程序的起始点,args 是String类型的数组,println()方法通过 System.out 显示作为参数传递给它的字符串,1.2安装MyEclipse,编译调试java程序,存在很多不方便,无法直接修改,无法跟踪调试,不能完成更多复杂的程序的开发。,MyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是一个十分优秀的用于Java,J2EE的Eclipse插件集合,MyEclipse功能非常强大,多各种开源产品支持非常不错。它是功能丰富的JavaSE,JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,JavaScript,SQL,Hibernate。,使用MyEclipse开发程序,使用MyEclipse开发程序,使用MyEclipse开发Java程序的第一步是建立一个项目,一个独立的程序就需要一个项目。单击“File”菜单-“New”-“Java Project”.,使用MyEclipse开发程序,第二步,在src文件夹下,创建Java class。右键单击src文件夹,在弹出菜单中,选择“New”-“class”。,在MyEclipse中运行程序,总结,Java 是面向对象的跨平台语言,Java 可用来生成两类程序:应用程序、小应用程序,JDK 提供多种工具,这些工具位于 JDK 的 bin 目录下,具体如下:javac java javadoc,Java 字节码是 Java 虚拟机(JVM)可理解的机器语言指令,通常作为 Java 语言源代码的编译结果而生成,项目一 计算器,任务一:,完成简单计算器的程序设计,能够通过控制台实现两个数的加、减、乘、除。,本节目标:,掌握变量、标识符的定义;,掌握简单数据类型的使用;,掌握各种运算符的使用;,变量的定义,变量是Java程序中存储数据的基本单元。,声明变量的语法为:,数据类型 变量名=值,标识符=值;,Java中的所有变量都必须声明后才能使用。通过将标识符用逗号隔开可以声明多个变量,变量区分大小写。,标识符,用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。,Java语言规定标识符由字母、数字、下划线“_”和美元符号“$”组成,并且第一个字符不能是数字符号。,Java语言中的标识符是严格区分大小写的。,关于标识符的另一个重要限制是,不能使用Java语言的关键字。Java标识符的长度没有任何限制。,基本数据类型,变量,变量声明由以下三,个部分组成:,数据类型,名称,要赋给的初始值(可选),语法,:,数据类型 标识符,=值,标识符,=,值,;,标识符,标识符必须以字母,下划线“_”或“$”符号开头。首字母后面可以跟任意数量的字母,数字,下划线“_”或“$”符号。,可以包含数字,但不能以数字开头。,不能使用Java关键字。,判断下列变量名是否合法:,Myvariable,9pins,a+c,_9pins -9pins,数据转换类型,自动类型转换,强制类型转换,将,一种类型的变量赋给另,一种类型的变量时,只要,满足以下条件,就会发生,自动类型转换:,两种类型兼容;,目标类型大于源类型;,强制转换用于显式类型,转换。如果被转换的值,的数据类型大于其目标,类型,就会丢失部分信,息,类型强制转换,类型强制转换使程序将变量视为某种类型,尽管此变量中包含的是另一类型的数据,示例:,float c=34.89675f;,int b=(int)c+10;,/,将,c,转换为整型,算术运算符,赋值运算符,关系运算符,逻辑运算符,编写程序实现Xn,n!。,本节目标:,掌握Java语言中的各种流程控制语句的使用。,任务二:,控制流语句的类型,判断语句,if-else 语句,switch-case 语句,循环语句,while 循环,do-while 循环,for 循环,if-else 语句,If-else,语句测试条件的结果,然后根据此结果来执行相应的操作,它可用于以两个不同的路径来执行程序,if-else,语句的语法为:,if(condition),action1;,else,action2;,switch-case 语句,switch-case,语句可用于替换,if-else-if,语句,在表达式可以得出多个值的情况下,使用此语句,使用,switch-case,语句会带来更好的效果,switch-case,语句的语法为:,switch(表达式),case 1:,操作 1 的语句;,break;,case 2:,操作 2 的语句;,break;,.,case n:,操作 n 的语句;,break;,default:,默认语句;,循环 3-1,while,只要指定的条件评估为,true,while,循环则执行一个,语句或一组语句,语法,int count=0;,while(count 10),System.out.println(count);,count+;,示例,while(测试),/语句,被执行,条件=true,循环 3-2,do-while,do-while 循环执行某些语句,直到指定的条件为真。此循环确保循环体至少执行一次,语法,do,System.out.println(count);,count+;,while(count 10),示例,do,/语句,while(测试),被执行,条件=true,循环 3-3,for,for 循环主要用于按预定的次数执行语句或语句块,语法,for(count=0;count 10;count+),System.out.println(count);,示例,for(初始化;测试;增量),操作语句;,条件,=true,被执行,跳转语句2-1,两种跳转语句为:,break,continue,break,语句:用于终止块。,continue,语句:有时程序员可能希望继续循环,而停止处理其主体内的其余代码,以进行特定的迭代。,continue,语句可用于这种操作。,运用面向对象的思想,编写计算器类,并定义加、减、乘、除四个方法。,本节目标:,掌握类和对象的声明;,掌握类的继承实现;,掌握类的覆盖和重载的区别和使用。,任务三:,面向对象编程,OOP,旨在在计算机程序中,模拟现实世界中的概念,在 OOP,中,现实世界的所有事物全都被视为对象,能够在计算机程序中用类似的,实体模拟现实世界中的实体,设计和实现软件系统的方法,对象,对,象,面向对象编程的核心,为计算机应用程序提供实用基础,完成特定任务,表示现实世界中的实体,“对象是存在的具体实体,具有明确定义的状态和行为。”,类,类以共同特性和操作定义实体,类是用于组合各个对象所共有操作和属性的一种机制,形状类,动物类,汽车类,类的示例,“类是具有相同属性和行为的一组对象的集合”,属性,事物的特性在类中表示为变量,每个对象的每个属性都拥有其特有的值,属性名称由类的所有实例共享,住址,姓名,属性,年龄,“在类中表示对象或实体拥有的特性时称为属性”,促销员对象,在 Java 中实现类,语法,class ,其中,,class 是创建类所使用的关键字,,是类的名称,,包含属性和方法的声明。,类中的方法 6-1,方法的定义,方法的名称,参数列表,方法的主体,方法返回的对象类,型或原始类型,类中的方法 6-2,语法,(,),其中,,是方法返回值的数据类型,是用户自定义的方法名称,方法的参数列表是一组变量声明。,类中的方法 6-5,实例方法可使用圆点符号来访问,方法被调用的对象在圆点左边,而方法的名称在圆点右边,例如:Obj.isAvailable();,this 关键字,用于任何实例方法内,指向当前对象,this 的值指向对其调用当前方法的对象,this 关键字可在需要当前类类型的对象引用时使用,构造方法,每当创建给定类的实例时就调用的方法,与类同名,但没有返回类型,Java 为对象分配内存,初始化实例变量并调用构造方法,两种构造方法,参数化构造方法,隐式构造方法,继承,父 类,子类,父类/子类是相对的,Cow,类,Lion,类,Tiger,类,Animals,类,Carnivorous,类,Herbivorous,类,Coat,类,继承的特点,继承的特点,具有层次结构,子类继承了父类的非私有属性和方法,继承的优点,继承的优点,代码的可重用性,父类的属性和方法可用于子类,设计应用程序变得更加简单,可以轻松地自定义子类,子类构造方法 2-1,子类构造方法的名称与类的名称相同,先调用父类构造方法,再调用子类构造方法,要调用父类构造方法,使用关键字,super,子类构造方法 2-2,调用父类构造方法的语法为:,super()或 super(参数列表);,super(),方法始终指向调用类的父类,多态性 2-2,父类,子类-绘制和移动三角形,子类-绘制和移动矩形,子类-绘制和移动五边形,Shape,Draw(),Move(),Triangle,Draw(),DrawTraingle,Move(),MoveTriangleVertices,Rectangle,Draw(),DrawRectangle,Move(),MoveRectangleCorner,Pentagon,Draw(),DrawPentagon,Move(),MovePentagonVertices,方法重载,方法重载,类中有多个具有相同名称的方法,方法重载,类中有多个具有相同名称的方法,方法具有不同的,参数列表,方法覆盖,方法覆盖,子类和父类的方法具有相同的名称和类型,用子类对象调用子类中的重写方法,super.methodname(),用于调用父类中的方法,编写程序完成计算器的界面设计。,本节目标:,掌握包的定义与包的导入;,掌握修饰符的作用范围;,掌握AWT图形界面组件类的使用;,掌握布局管理器的使用;,任务四:,包,包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件,有助于避免命名冲突。在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称。包基本上隐藏了类并避免了名称上的冲突,包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类,“包将类名空间划分为更加容易管理的块,,包既是命名机制也是可见度控制机制”,创建包,package mypackage;,public class Calculate,public double volume(double height,double width,double depth),声明包,导入包,import mypackage.Calculate;,public class PackageDemo,public static void main(String args),Calculate calc=new Calculate();,导入包,访问修饰符 3-1,信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰符的原因,信息隐藏的原因包括:,对任何实现细节所作的更改不会影响使用该类的代码,防止用户意外删除数据,此类易于使用,访问修饰符,访问修饰符,private,protected,public,默认,访问修饰符 3-2,该类或非该类均可访问,public,只有该类可以访问,private,相同数据包中的类可以访问,默认,该类及其子类的成员可以访问,同一个包中的类也可访问,protected,访问修饰符 3-3,访问修饰符可访问性,位置,private,默认,protected,public,同一个类,是,是,是,是,同一个包内的类,否,是,是,是,不同包内的子类,否,否,是,是,不同包并且不是子类,否,否,否,是,方法修饰符,方法修饰符,static,final,abstract,static 修饰符 3-1,static修饰符修饰的方法叫静态方法,目的,使该方法独立于类的实例,使用类去访问,而不是类实例,所以也叫类方法,static 修饰符 3-2,调用静态方法的语法为:,classname.methodname();,规 则,可以调用其他静态方法,必须访问静态数据,不能使用,super,或,this,关键字,final 修饰符,final,不能修改变量,子类不能重写方法,abstract 修饰符 3-1,由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类,抽象方法必须声明在抽象类中,抽象方法语法:,abstract type method_name(parameter_list);,声明抽象类语法:,abstract class,使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方法的实现细节,abstract 修饰符 3-2,抽象类可以具有指向子类对象的对象引用,abstract,抽象类不能被,实例化,构造方法,和,static,方法不能是抽象的,父类的抽象方法往往在子类中实现,java.awt 包中的类体系结构,Component,Button,Checkbox,Container,Choice,Canvas,TextComponent,Label,Panel,Window,Applet,Frame,Dialog,TextArea,TextField,容器,可以存放组件的区域,,可在容器上进行绘制和着色,java.awt,包中的,Container,类可直接或间接派生出两个常用容器:,框架(,Frame,类)和面板(,Panel,类)。,框架是一个带有边框的独立的窗口。,面板是包含在窗口中的一个不带边框的区域。,容器 框架,框架是独立于,Applet,和浏览器的一个窗口。,可以通过以下任一构造函数来创建:,容器-面板,面板不是一个单独的窗口,它只是包含在窗口中的一个区域。,面板是可以将许多组件组合起来的一种容器。,必须将面板添加到窗体中。,标签,通常用来指明项目的用途,标签不可以被用户编辑,文本域,一种用来输入文本的GUI组件,只能接受一行输入,按钮,按钮是任何GUI都不可或缺的组件,用来捕捉用户操作的最为简便的方式,布局管理器,用户界面上的屏幕组件可以按照一定的格式布局,例如水平排列,或按网格方式排列,布局管理器类是一组类,它,实现,java.AWT.LayoutManager,接口,帮助在容器中放置组件,Java 中可用的各种布局如下:,BorderLayout,FlowLayout,GridLayout,BorderLayout 1,上边的组件,左,边,的,组,件,右,边,的,组,件,下边的组件,容器,North,South,East,West,CENTER,West,East,BorderLayout 2,上边的组件,右,边,的,组,件,左,边,的,组,件,下边的组件,容器,North,South,Center,方法,说明,BorderLayout(),创建新的BorderLayout,组件之间没有间距,setHgap(int hgap),将组件间的水平间距设置为指定的值,setVgap(int vgap),将组件间的垂直间距设置为指定的值,FlowLayout 1,容器,流布局是面板的默认布局管理器,左上角,右下角,依次排序的组件,垂直或水平间距,FlowLayout 2,容器,流布局是面板的默认布局管理器,左上角,右下角,顺序排列的组件,垂直或水平间距,方法,说明,FlowLayout(),构造新的中间对齐的FlowLayout,,将垂直和水平间距保留为 5 个像素,setAlignment(int align),设置指定布局的对齐方式,setHgap(int hgap),设置指定布局的水平间距,setVgap(int vgap),设置指定布局的垂直间距,GridLayout 1,行,列,组件大小相同,重新调整组件大小,以适合各自的单元,指定网格中的行数和列数,创建网格布局,GridLayout 2,行,列,组件大小相同,重新调整组件大小,以适合各自的单元,指定网格中的行数和列数,创建网格布局,方法,描述,GridLayout(),创建网格布局,默认为每个组件占用一整列和一单行,GridLayout(int rows,int cols),用指定的行数和列数创建网格布局。,GridLayout(int rows,int cols,int hgap,int vgap),用指定的行数和列数、指定的水平和垂直间距创建网格布局,setColumns(int cols),将相应布局中的列数设置为指定值,setHgap(int hgap),将相应布局中的水平间距设置为指定值,setVgap(int vgap),将相应布局中的垂直间距设置为指定值,setRows(int rows),将相应布局中的行数设置为指定值,生成并运行该应用程序。,使用布局管理器,选择内容面板,在属性窗口中将内容面板的 Layout 属性选择为 BorderLayout,从组件面板的 Swing 类别中选择 JButton,将 JButton 添加至 North,使用属性窗口更改属性,将 JButton 添加至内容面板的左边、下边和右边,从 Swing 容器类别中选择一个 JPanel,并将其添加至内容面板的中央,将 JLabel 添加至 JPanel,并更改属性,将 JTextField 添加至 JPanel,并更改属性,public void btnNorth_actionPerformed(ActionEvent e),public void btnNorth_actionPerformed(ActionEvent e),txtMessage.setText(“按下了按钮“北”);,public void btnWest_actionPerformed(ActionEvent e),txtMessage.setText(“按下了按钮“西”);,public void btnSouth_actionPerformed(ActionEvent e),txtMessage.setText(“按下了按钮“南”);,public void btnEast_actionPerformed(ActionEvent e),txtMessage.setText(“按下了按钮“东”);,演示:,使用布局管理器创建 JBuilder 应用程序,在设计视图上选择按钮“北”,在检查器窗口中单击“Events”选项卡,双击检查器窗口中的 actionPerformed 事件,添加如下代码以便在 txtMessage 字段中显示消息,为 btnWest 的 actionPerformed 事件添加代码,为 btnSouth 的 actionPerformed 事件添加代码,为 btnEast 的 actionPerformed 事件添加代码,Code generated for the actionPerformed method 为 actionPerformed 方法生成的代码,编写程序完成计算器的加、减、乘、除的功能实现。,本节目标:,掌握接口的使用;,掌握事件处理。,任务五:,接口,接口就是某个事物对外提供的一些功能的申明,可以利用接口实现多态,同时接口也弥补了Java单一继承的弱点,使用interface关键字定义接口,一般使用接口声明方法或常量,接口中的方法只能是声明,不能是具体的实现,创建接口的步骤 2-1,/定义方法的接口,public,interface,myinterface,public void add(int x,int y);,public void volume(int x,int y,int z);,/定义程序使用的常量的接口,public,interface,myconstants,public static final double price=1450.00;,public static final int counter=5;,定义一个接口:,创建接口的步骤 2-2,编译如下:,javac myinterface.java,用关键字 implements 实现接口,例如:,class demo implements myinterface,如果有一个以上接口被实现,则用逗号隔开接口名称,如下所示:,class demo implements Mycalc,Mycount,接口使用示例,public interface GForce,double g=9.8;,void show();,public class InterfaceTest,public static void main(String args),GForce gForce=new Earth();,gForce.show();,public class Earth implements GForce,public void show(),System.out.println(“g=“+g);,事件控制的要点,Java 最新的事件处理方法是基于授权事件模型,事件源生成事件并将其发送至一个或多个监听器,监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。,事件,在,授权事件模型,中,事件是一个描述事件源状态改变的对象,。,通过鼠标、键盘与,GUI,界面直接或间接交互都会生成事件。,如:按下一个按钮、通过键盘输入一个字符、选择列表框中的一项、点击一下鼠标等。,事件源,事件源是一个生成事件的对象,一个事件源可能会生成不同类型的事件,事件源提供了一组方法,用于为事件注册一个或多个监听器。,每种事件的类型都有其自己的注册方法。一般形式为:,public void addListener(TypeListener e),AWT采取的事件控制过程,监听器对象属于一个类的实例,这个类实现了一个特殊的接口,名为“监听者接口”,事件源是一个对象,它可以注册一个或多个监听器对象,并向其发送事件对象。,事件源将在发生事件时向所有注册的监听器发送事件对象。,监听器对象使用事件对象中的信息来确定它们对事件的响应。,事件体系结构,FocusEvent,AWTEvent,ActionEvent,AdjustmentEvent,ComponentEvent,TextEvent,ItemEvent,ContainerEvent,InputEvent,WindowEvent,PaintEvent,KeyEvent,MouseEvent,EventObject,AWT 事件类型 2-1,事件类,说明,事件源,ActionEvent,通常按下按钮,双击列表项或选中一个菜单项时,就会生成此事件。,Button、List、MenuItem、TextField,AdjustmentEvent,操纵滚动条时会生成此事件。,Scrollbar,ComponentEvent,当一个组件移动、隐藏、调整大小或成为可见时会生成此事件。,Component,ItemEvent,单击复选框或列表项时,或者当一个选择框或一个可选菜单的项被选择或取消时生成此事件。,Checkbox、CheckboxMenuItem、Choice、List,FocusEvent,组件获得或失去键盘焦点时会生成此事件。,Component,AWT 事件类型 2-2,事件类,说明,事件源,KeyEvent,接收到键盘输入时会生成此事件。,Component,MouseEvent,拖动、移动、单击、按下或释放鼠标或在鼠标进入或退出一个组件时,会生成此事件。,Component,ContainerEvent,将组件添加至容器或从中删除时会生成此事件,。,Container,TextEvent,在文本区或文本域的文本改变时会生成此事件,。,TextField、TextArea,WindowEvent,当一个窗口激活、关闭、,失效、恢复、最小化、打开或退出时会生成此事件。,Window,监听器接口,监听器通过实现 java.awt.event 包中定义的一个或多个接口来创建。,在发生事件时,事件源将调用监听器定义的相应方法。,有兴趣接收事件的任何监听器类都必须实现监听器接口。,监听器接口列表 2-1,事件监听器,方法,ActionListener,actionPerformed,AdjustmentListener,adjustmentValueChanged,ComponentListener,componentResized,componentMoved,componentShown,componentHidden,ContainerListener,componentAdded,componentRemoved,FocusListener,focusLost、focusGained,ItemListener,itemStateChanged,监听器接口列表 2-2,事件监听器,方法,KeyListener,keyPressed、keyReleased,keyTyped,MouseListener,mouseClicked、mouseEntered,mouseExited、mousePressed,mouseReleased,MouseMotionListener,mouseDragged、mouseMoved,TextListener,textChanged,WindowListener,windowActivated、windowDeactivated,windowClosed、windowClosing,windowIconified、windowDeiconified,windowOpened,适配器类,适配器类,事件监听器接口,ComponentAdapter,ComponentListener,ContainerAdapter,ContainerListener,FocusAdapter,FocusListener,KeyAdapter,KeyListener,MouseAdapter,MouseListener,MouseMotionAdapter,MouseMotionListener,WindowAdapter,WindowListener,为了使事件处理变得简单,,Java,为具有多个方法的监听器接口提供适配器类。适配器类实现并提供了一个事件监听器接口中的所有的方法,但这些方法都是空方法。,private class MyMouseAdapter extends MouseAdapter,private Color bgColor;,public MyMouseAdapter(Color c)bgColor=c;,public void mouseClicked(MouseEvent mevent),setBackground(bgColor);repaint();,事件源、监听器和监听器接口,事件源描述事件对象中事件的性质。,每个事件源都被映射至一个或多个事件监听器,发生事件时需要调用这些事件监听器。,事件源随后通过将事件对象传递至监听器接口类的方法,将事件信息发送到监听器接口。,监听器分析事件对象找出事件信息,,以便给出响应,。,任何 GUI 对象的获得或失去焦点都被视为焦点事件,并且事件源必须向事件监听器通知事件对象已失去或已获得焦点。,焦点监听器需要实现两个方法:focusGained 和 focusLost。,要进行错误检查或数据校验时,对焦点的捕捉就显得尤其重要。,焦点事件,焦点事件示例,public void focusLost(FocusEvent event),if(event.getComponent()=ccField&,!event.isTemporary(),if(!checkFormat(ccField.getText(),ccField.requestFocus();,实现了当捕捉到失去,焦点事件时如何响应,检验失去焦点的组件中的文本格式是否正确,如果格式不正确,将焦点移回到该组件,任务六:,若除数为0,计算器程序将如何处理?,本节目标:,掌握异常的捕获与处理。,异常处理的基本概念,异常处理机制的作用,在编程中,错误总是难免会发生的,关键在于发生错误之后,能否捕获错误,如何捕获错误,程序能否从错误中恢复,异常处理的目的,不是要避免异常,而是在异常发生时,设法使损失降低到最小,异常处理的基本概念,错误与异常,错误:编译程序时发现的问题,编译时会出现错误或警告。当运行程序时,错误已经不存在,异常:编译时没有发现,只有在运行程序的时候,在某种特定的情况下,程序执行出现错误,这时会发生异常,什么是异常?,public class ExceptionRaised,public ExceptionRaised(),public int calculate(int operand1,int operand2),int result=operand1/operand2;,return result;,public static void main(String args),
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服