第11章 实 训

上传人:熏** 文档编号:243124496 上传时间:2024-09-16 格式:PPT 页数:41 大小:159KB
返回 下载 相关 举报
第11章 实 训_第1页
第1页 / 共41页
第11章 实 训_第2页
第2页 / 共41页
第11章 实 训_第3页
第3页 / 共41页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,语言程序设计基础,第,11,章 实 训,第,11,章 实 训,实训,1,开发工具和运行环境,实训,2,基本数据类型、运算符,实训,3,Java,控制结构,实训,4,方法的定义和调用,实训,5,对象的创建与使用,实训,6,类的组织,包,实训,7,数组及命令行参数,实训,8,类的继承,实训,9,重载和覆盖,实训,10,接口的实现,实训,11,String,类和,StringBuffer,类,实训,12,Math,类,实训,13,异常处理,实训,14,文件属性的访问,实训,15,文本文件的读写,实训,16,随机文件的读写,实训,17,Java Applet,实训,18,图形用户界面(,),实训,19,图形用户界面(二),实训,1,开发工具和运行环境,实训目的,设置环境变量。,掌握,Java,程序编写、编译、运行的过程。,熟练使用,Java,开发工具,JDK,。,了解,print( ),及,println,( ),方法。,实训内容,首先设置环境变量,然后编写一个类似,HelloWorld,的程序。第一次运行时,该程序的输出是:,Hello,加上你的名字,例如“,Hello,李明”。第二次运行时,在“,Hello”,和“名字”之间换行。,实训,1,简要提示,设置的环境变量主要是,path,变量,将其设置为,Java,的安装目录即可,但不同的操作系统的设置的方法不同,读者可根据自己的机器环境进行设置。,程序的主体是,main(),方法。第一次编写时,将姓名作为,print( ),语句的参数即可。为了实现换行,在第二次编写时,需要使用,println,( ),语句或者使用带有转义字符,n,的,print( ),语句。,每一次对程序的更改,都需要使用,Java,的编译器,javac,重新编译,再用解释器,java,运行。,实训,2,基本数据类型、运算符,实训目的,进一步理解,Java,的基本数据类型,掌握语法基础。,掌握,Java,运算符。,实训内容,编写程序,,,输出,字,符,你,、,的,Unicode,编码;编写程序输出,Unicode,编码为,20328,和,12358,所代表的字符。,简要提示,定义两个字符变量,分别保存字符,你,、,。,利用强制转换打印出字符,Unicode,编码。,要察看某一合法,Unicode,编码所代表的字符只需要字符强转换。,实训,3,Java,控制结构,实训目的,条件语句。,循环语句。,跳转语句。,实训内容,编写一个程序,用于将两个整数值和一个运算符(限定为,+,、,-,、*、,/,四种运算)存储在相应的变量中,并执行必要的运算。,编写一个程序,求,50,以内奇数和以及,50,以内的素数。,实训,3,简要提示,定义两个整型变量和一个字符型变量用来存储两个操作数和运算符,使用,switch,语句执行必要的运算,并输出结果。,素数是只能被,1,和它本身整除的整数。,数的产生由,for,循环控制,注意,break,语句和,continue,语句的使用。,实训,4,方法的定义和调用,实训目的,掌握简单的方法定义和调用。,了解方法中的参数传递。,学习使用递归方法。,实训内容,编写一个程序,求斐波那契数列第,10,项。,简要提示,斐波那契数列的第一项和第二项是,1,,后面每一项是前两项之和。,使用递归方法完成。,实训,5,对象的创建与使用,实训目的,类的创建及其成员定义。,对象的创建及使用。,构造函数的使用。,实训内容,创建,Computer,类用于描述计算机的属性及操作。类中应该有表示计算机基本组成部件(如品牌、颜色、,CPU,型号、内存容量、硬盘容量等)的成员,也有表示计算机价格、工作状态的成员,并可以对这些成员进行设置和输出。,用构造函数实现“组装”一台计算机。可以对计算机进行开机、关机、待机等操作,并用计算机的状态属性表明。,实训,5,简要提示,在,Computer,类中设计若干成员变量,表示计算机的基本属性。,定义,setcomputer,(),方法对成员变量进行设置。设计,printcomputer,(),方法用于这些成员变量的输出。,为,Computer,类设计构造函数,以便于创建对象。构造函数可以传入参数,以便对计算机的属性进行设置,也应该创建空参数的构造函数。,Computer,类中还应该设计,pc_open,()、,pc_close,(),等方法,用于对计算机进行开、关等操作。这些方法改变表示计算机工作状态发成员变量。,使用,Computer,类创建具体的对象,Mycomputer,,,可以创建一个,也可以创建多个,用于测试上面定义的方法。,实训,6,类的组织,包,实训目的,通过本次实训,主要学习,包的创建及使用。,类及其成员的访问权限。,类路径变量的使用。,实训内容,创建类,Factorial,实现求阶乘,并放入自己的包,mypackage,.factorial,中。在另一个包,mypackage,.test,中定义,TestFactorial,类,测试能否实现计算阶乘的功能。,实训,6,简要提示,计算阶乘要区分正数、负数或零,所以求阶乘时必须分各种情况。,两个类分别放入不同的包中,编译时需要注意加上,d,参数,以便自动生成定义的包。,运行时需要注意用类的全限定名,而不能使用类的短名。,要注意改变类路径变量,以便程序可以正确运行,加深对,java,包的理解。,实训,7,数组及命令行参数,实训目的,数组的创建及其遍历。,使用对象数组。,命令行参数的传递及使用。,实训内容,现有职工类,Employee,,,其代码如下:,class Employee,String name;,int,number;,int,age;,int,salary;,public Employee(String name,int,number,int,age,int,salary),this.name=name;,this.number=number;,this.age=age;,this.salary=salary;,其中的四个变量分别表明职工的姓名、编号、年龄、薪水。要求编写类,EmployeeTest,,,在类中使用数组存储若干职工的信息,并有方法分别计算职工年龄、薪水的最大值、最小值和平均值。,程序运行时在命令行中输入两个参数,根据参数返回职工年龄或薪水的信息。第一个参数若是,age,表明计算年龄信息,若是,salary,表明计算薪水信息。第二个参数若是,avg,表明计算平均值,若是,min,表明计算最小值,若是,max,表明计算最大值。,例如若输入以下信息,则表明求职工年龄的平均值:,java Employee age,avg,若输入以下信息,则表明求职工薪水的最大值:,java Employee salary max,其他输入都显示输入错误。,实训,7,简要提示,程序中创建,Employee,数组存储,Employee,对象,创建方法对该数组变量进行操作,主要的操作是利用循环进行数组的遍历。,数组中每一个变量都是一个,Employee,对象,都可以使用成员运算符“”调用成员变量并进行比较或运算。,程序的,main,(),方法中进行参数的判断,首先要判断是否为两个参数,然后判断两个参数分别是什么。根据参数的不同,调用不同的方法。,进行字符串比较时,使用,String,类的,equals,方法或,equalsIgnoreCase,方法。,s1.equals(s2) -,如果字符串,s1,等于,s2,,,返回,true,,,否则为,false,。,s1.,equalsIgnoreCase,(s2) -,如果字符串,s1,等于,s2,,,返回,true,,,否则为,false,,,忽略大小写。,实训,8,类的继承,实训目的,了解,Java,继承基础知识。,学会使用,Java,实现继承。,掌握,Java,继承的应用。,实验内容,编写一个程序,首先创建一个员工类(,employee,),,包含若干的成员。然后使用关键字,extends,另外创建“老板”类(,manager,),,说明,Java,类的继承的关系。,编写一个小程序,在超类中定义一个以上的访问权限为,private,的成员变量和方法,以及访问权限为非,private,的方法。创建子类,试图访问超的这些成员,并解释所产生的现象。,编写一个程序,调用超类的构造函数来创建一个子类对象。子类能继承超类的构造函数吗?,实训,8,简要提示,继承基础。,Java,通过允许在一个类的声明中加入另一个类来实现继承,这需要使用关键字,extends,。,这样,子类就添加到(扩展)了超类。可以格式化的表示为:,class Employee,/,类体,class Manager extends Employee,/,类体,注意要点:通过继承实现代码复用。根类:,java.lang.Object,。,父类包括直接或者间接被继承的类。,Java,不支持多重继承。子类不能继承父类中访问权限为,private,的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量,构造函数的继承:在层次结构中,超类和子类都可以有自己的构造函数。这就产生了一个重要的问题:哪一个构造函数,是子类构造函数、超类构造函数,还是两者负责创建子类的对象。事实上,超类的构造函数构造对象的超类部分,而子类的构造函数构造子类部分。,实训,9,重载和覆盖,实训目的,了解,Java,静态多态性。,学会使用,Java,方法重载和方法覆盖。,掌握,Java,方法的重载和覆盖的应用。,实验内容,编写一程序,要求创建一个类,类体包含有,void receive(,int,i),、,void receive(,int,x,int,y),、,void receive(double d),、,void receive(String s),等方法,另外创建一个类文件调用该类里的方法,从而实现重载方法。,编写一个程序,要求创建一个类,类体提供两个以上的自定义构造器,复制其中一个构造函数的某方面效果到另一个构造函数中,并在程序主入口处调用构造器来创建不同的对象实例。,编写一个程序,创建,SuperClass,,,在这个类里建立一个终态方法,另创建一个类,SubClass,继承于,SuperClass,类,在该类中创建一个方法去覆盖超类的终态方法,然后试图调用该终态方法,并对所产生的现象作出解释。,实训,9,简要提示,方法重载的实现方法,可如下所示使用格式:,public void,println,(,int,i),public void,println,(float f),public void,println,(),注意要点:参数表必须不同,返回类型可以不同。当写代码来调用这些方法中的一种方法时,根据提供的参数的类型选择合适的一种方法。,有两个规则适用于重载方法:(,1,)调用语句的参数表必须有足够的不同,以至于允许区分出正确的方法被调用。正常的拓展晋升(如,单精度类型,float,到双精度类型,double,),可能被应用,但是这样会导致在某些条件下的混淆。(,2,)方法的返回类型可以各不相同,但它不足以使返回类型变成唯一的差异。重载方法的参数表必须不同。,构造函数的重载:一个类可以有多个构造器,构造器可以重载。重载经常用于构造方法,构造方法具有和类名相同的名称,而且不返回任何数据类型。如果有一个类带有几个构造函数,那么也许会想复制其中一个构造函数的某方面效果到另一个构造函数中。可以通过使用关键字,this,作为一个方法调用来达到这个目的。,方法覆盖:方法覆盖对象多态性的表现,方法覆盖主要是如何实现,如何应用方法覆盖。子类的对象方法与对象超类的方法:方法名相同,参数表相同,返回类型相同。,方法覆盖的规则:不能抛出更多异常,不能指定更弱的访问权限,虽然静态方法不能覆盖,但是也必须遵循同样的规则。,实训,10,接口的实现,实训目的,了解接口的定义和接口的实现。,实验内容,编写一个程序,定义两个接口,接口可以不书写代码,另外定义两个接口实现单继承和多继承。,定义一个接口,Volume,,,其中包含一个计算体积的抽象方法,calculateVolume,(),,,然后设计,Circle,和,Rectangle,两个类都实现接口的方法,calculateVolume,(),,,分别计算球体和长方形的体积。,实训,10,简要提示,接口是一种专门的类型,用,interface,关键字定义。接口中只能定义抽象方法,不能有方法体,一定是,public,修饰的。接口中可以定义变量,但实际上是,static final,修饰的常量。接口中不能定义静态方法。,接口的定义包括接口声明和接口体两部分,接口声明中还可以包括对接口访问权限以及父类接口列表,完整的接口声明如下:,public interface,interfaceName,extends,superinterface,/,接口体,类与接口的关系是实现,关键字,implements,。,实现关系是一种一般化关系。为了使用接口,你要编写实现接口的类。,类实现接口时,必须以,public,修饰的方法方能覆盖接口中的方法。在非抽象类中必须将要实现的接口中所有的抽象方法都要进行覆盖。类实现接口后,可自动获得接口中定义的常量。当实现多个接口,且这些接口中有名字冲突的常量,则不能直接应用冲突的常量名。,一个类要实现某个或某几个接口时,有如下的步骤和注意事项:,(,1,)类的声明部分,用,implements,关键字声明该类将要实现哪些接口。,(,2,)接口的抽象方法,其访问限制符都已指定是,public,,,所以类在实现方法时,必须显式地使用,public,修饰符,否则将被警告缩小了接口中定义的方法的访问控制范围。,(,3,)接口体的声明是定义接口的重要部分,接口体由两部分组成,一部分是对接口中属性的声明,另一部分是对接口中方法的声明。,实训,11,String,类和,StringBuffer,类,实训目的,掌握,String,中的常用方法,掌握,StringBuffer,中的常用方法,实训内容,编写一个应用程序,判断两个字符串是否相同,并进一步按字典顺序比较字符串的大小。,编写一个应用程序,使用,StringBuffer,对象实现对字符串的编辑操作,包括:替换字符串中的某些字符,删除串中某些字符,在字符串中插入或尾部加入新的字符串,翻转字符串等。,实训,11,简要提示,String,类的字符串构造函数可以使用,String(ABCDE);,的形式。,String,类中,,equals(),方法判断字符串是否相等,,compareTo,(),方法比较字符串的大小。,StringBuffer,类的字符串构造函数可以使用,StringBuffer,(ABCDE);,的形式。,StringBuffer,类中,,replace(),方法用来替换字符串,,insert(),方法用来插入字符串,,delete(),方法用来删除字符串,,append(),方法用来在尾部追加字符串,,reverse(),方法实现字符串翻转。,实训,12,Math,类,实训目的,掌握,Math,类的用法,完成一些常用的科学计算。,实训内容,编写一个应用程序,实现角度和弧度的转换、求常用函数的函数值等多种功能(利用,Math,类的方法),简要提示,Math,类定义的属性和方法是静态的,可以通过类名直接调用。,E,和,PI,是,Math,类定义了两个双精度常量,其使用方法是,Math. E; Math.PI;,Math.,toRadians,(),将度转换成弧度。,Math.,toDegrees,(),将弧度转换成度。,三角函数中,各个方法的参数是弧度。,实训,13,异常处理,实训目的,了解,Java,异常基础,会创建并处理有异常的,Java,程序。,掌握异常机制的应用。,实验内容,异常类型不匹配的程序。编写一个,catch,语句中声明的异常类型不匹配的程序,包含多个,catch,子句的异常处理程序。程序要求:在,try,子句中设计通过两个,catch,子句分别来捕获异常,在,try,块中同时设置两个异常的小程序。,程序要求:编写一个在,try,块或,catch,块中有,return,语句的程序,然后再在,try,块或,catch,块中加入,System.exit(),方法。,程序要求:编写一个描述异常层次结构由低到高的捕获顺序的小程序。,根据所给,throws,和,throw,关键字的使用格式,编写一个具有声明抛弃异常的小程序。,实训,13,简要提示,如果在,catch,语句中声明的异常类是,Exception,,,catch,语句也能正确地捕获,这是因为,Exception,是,ArithmeticException,的父类。如果不能确定会发生哪种情况的异常,那么最好指定,catch,的参数为,Exception,,,即说明异常的类型为,Exception,。,如果试图捕获一个不同类型的异常,将会发生意想不到的情况。,捕获异常的顺序和不同,catch,语句的顺序有关,当捕获到一个异常时,剩下的,catch,语句就不再进行匹配。因此,在安排,catch,语句的顺序时,首先应该捕获最特殊的异常,然后再逐渐一般化。也就是一般先安排子类,再安排父类。,不论在,try,代码块中是否发生了异常事件,,finally,块中的语句都会被执行。,Finally,块不执行的条件:在,try,块或,catch,块中执行了,System.exit,(),方法,终止虚拟机。,声明抛弃异常是在一个方法声明中的,throws,子句中指明的;,throws,子句中同时可以指明多个异常,说明该方法将不对这些异常进行处理,而是声明抛弃它们。,实训,14,文件属性的访问,实训目的,掌握,File,类的构造方法,掌握,File,类的常用方法,并能够灵活运用它来获取文件的相关属性。,实训内容,编写一个程序,使它能够像,DOS,操作系统命令,Dir,的功能,列出指定目录内所有文件和目录的相关信息。,D:,javapj,myinput,java,Jdir,d: ,javapj,2005-3-16 9:31:02461ex.class,2005-3-21 20:58:0027,myproject,.,jcu,2005-3-21 20:58:00172,myproject,.,jcw,2005-3-21 20:58:002,myproject,.,jcd,2005-3-16 9:31:00183ex.java,2005-3-21 90:57:5089,mysys,.java,2005-4-16 23:18:44554,myjava,.,jcu,2005-4-16 23:18:44262,myjava,.,jcw,2005-3-21 21:12:06,myinput,2005-4-16 23:18:444175,myjava,.,jcd,9,个文件,5925,字节,1,个目录,实训,14,简要提示,运行该程序,如果没有给定参数,就显示当前目录下的文件与子目录相关信息。程序也可以从,main(String,args,),方法中接收一个参数,作为要显示的目录和文件名称。,引用字符串参数,args,0,时,要考虑没有参数输入的情况可能出现的异常。可用以下代码来完成参数的读取。,try,dir=,args,0; /dir,是已定义的,String,对象,catch(,ArrayIndexOutOfBoundsException,e),dir=./;/,考虑没有参数传入时,,dir,的值是当前目录,根据传入的参数创建,File,类的实例,并判断该文件或目录是否存在。,File f=new File(dir);,if(!f.exists(),System.out.,println,(,文件或目录不存在!,);,System.exit(0);,在传入参数相连的文件或目录存在情况下,判断是否是目录,如果是目录则显示该目录中文件和相关子目录的有关情况;如是文件,则显示该文件的相关信息。(用相关变量记录文件数、目录数、字节数、字节总数),目录的处理比较复杂,要获取该目录下的文件或子目录信息,可以使用,listFiles,(),方法来返回该目录下的所有文件对象。如:,File,ls,=f.,listFiles,();,然后分别对返回的每个元素,判断是目录或文件,或是文件还要输出字节数。使用循环,for(,int,i=0;ijava CopyFile aa.txt bb.txt,Java,语言是一种公司追求软件系统运行环境无关性的跨平台语言,为此,Java,平台将应用程序间、应用程序与磁盘文件之间的数据抽象为各种类型的流(,Stream,)对象,将文件系统中的文件抽象为,File,对象。,什么叫流?流式输入输出有什么特点?,Java,流被分为字节流、字符流两大流类,两者有什么区别?,复制文件完成,共,284,个字节!,实训,15,简要提示,由于源文件名和目标文件名在命令行中指定,所以必须要求有源文件名和目标文件名,且两者不能相同。,为源文件创建输入流对象,为目标文件创建输出流对象,对于文本文件内容的读写采用循环结构中输入流的,read(),和输出流,write(),方法实现。,读写结束,关闭输入输出流。,实训,16,随机文件的读写,实训目的,掌握,RandomAccessFile,类的构造方法。,掌握,RandomAccessFile,类的常用方法,特别对于指针的控制。,能够利用,RandomAccessFile,对象完成对随机文件的读写。,实训内容,编写一个程序,结合教材本章例子,8-6,所创建的,student.,dat,文件,能够实现对学生记录的随机访问,要求输入记录号,读出该记录对应的学生信息。,实训,16,简要提示,要将输入的字符转换成数值类型,参阅标准输入输出的数据类型转换。,要为,student.,dat,文件创建一个与之连接的,RandomAccessFile,类的对象。,根据输入的记录判断是否超出文件的范围。(,n,指记录号的整型值,,13,是每条记录的宽度)。,if(n*13=,ra,.length(),System.out.,println,(,记录号超出范围!,);,对于正常范围内的记录号,通过,RandomAccessFile,类的,seek(n*13),来找出相应的记录,并用对应的方法去读取它。,ra,.seek(n*13);,b=new byte8;,ra,.read(b);,int,age=,ra,.,readInt,();,boolean,sex=,ra,.,readBoolean,();,System.out.,println,(new String(b)+t+age+t+sex);,要考虑程序中可能出现的异常及其处理。,实训,17,Java Applet,实训目的,通过本次实训,主要学习:,Java Applet,程序的编写方法,向,Java Applet,程序传递参数的方法,图像的加载及现实的方法,repaint,(),方法的执行过程,声音的加载及播放,实训内容,创建图片浏览器,PictureViewer,类,用于图片的浏览。要求:四个按钮分别实现相应的显示功能,并且在图片进行切换时播放声音进行提示,如图所示。图中所示的“图片浏览器”几个字是通过网页向,Applet,程序传递参数读入的。,实训,17,简要提示,可以通过,getParameter,(),方法获得网页中的参数,通过,getAudioClip,(),加载声音,通过,getImage,(),方法加载图片。,在四个按钮的事件处理中,显示图片并播放声音。,网页中的参数的获得和声音的加载可以在,init,(),方法中进行,图片的加载应该在按钮的事件处理中。,为了加载图片方便,可将图片按序号命名,程序中使用一个变量进行表明。,在程序中可以通过,paint,(),方法显示图片和获得的参数。,为了在按下按钮后能够显示图片,可以在事件处理的,actionPerformed,(),方法中使用,repaint,(),方法自动调用,paint,(),方法,以重绘图片。,实训,18,图形用户界面(,),实训目的,通过本次实训,主要学习基本,AWT,组件及布局管理器的使用,包括:,标签、按钮、文本框、复选框、单选框等基本,AWT,组件的使用。,常用布局管理器的使用。,利用布局管理器的混合使用来创建较复杂的图形用户界面。,实训内容,设计一个,applet,,,分别设置,FlowLayout,的对齐方式为居中、左对齐、和右对齐,在,applet,中放置五个按钮,按钮文本任意,用,appletviewer,观察小程序的运行情况,试着改变,appletviewer,窗口大小,观察各种对齐方式下,按钮的排列有何变化。,设计一个,applet,,,使用,BorderLayout,,,设置组件水平、竖直间距分别为,10,和,5,像素,在,applet,中放置五个按钮,按钮文本任意,分别放在,BorderLayout,的五个区,用,appletviewer,观察小程序的运行情况,试着改变,appletviewer,窗口大小,观察组件变化。,设计一个,applet,,,使用,GridLayout,,在,applet,中放置,13,个按钮,按钮文本任意,分别设置,GridLayout,的行列为,4,4,、,3,5,、,5,3,,用,appletviewer,观察小程序的运行情况,试着改变,appletviewer,窗口大小,观察组件变化。把,GridLayout,的行列分别改变为,13,0,和,0,13,,会出现什么情况?你能得出什么结论?,设计一个,applet,,,使用,CardLayout,,,设置,4,个卡片,每张卡片上都放置一个,Label,,,Label,的内容分别是“百川东到海”、“何时复西归”、“少年不努力”、“老大徒伤悲”,字体自定。,混合使用布局管理器,实现以下简易,QQ,用户登录界面的小程序。,实训,18,简要提示,布局管理器可以管理放置在容器中的组件的排列。,仅使用几种简单的布局管理器还不能设计出比较出色、复杂的,GUI,。,可以采取把组件放置到,Panel,中,然后把,Panel,再放置在其它容器中的方法来创建较复杂的,GUI,。,更复杂的,GUI,需要使用其他布局管理器如,GridLayout,等,还可以使用无布局(不推荐采取这种方式,因为在不同的平台上,GUI,可能具有不同的表现)。,GUI,的设计需要有熟练的技巧和丰富的经验,必须加强实践,才能创建出满意的,GUI,。,实训,19,图形用户界面(二),实训目的,通过本次实训,主要学习图形用户界面中的,Java,常用事件处理。包括:,理解,Java,事件处理机制。,掌握常用,Java,事件如动作事件、选择事件、鼠标事件、调整事件等的处理方法。,掌握菜单及快捷菜单的设计方法及菜单事件的处理。,实训内容,ActionListener,及,KeyListener,的使用。设计如下简易聊天室程序,在文本框中输入文字,单击“发送”按钮,或在文本框中击回车键,文本框中的文字添加到多行文本区中,(,你可以设置多行文本区的字体颜色,字体等,使它更像一个实际的聊天室,),。,MouseListener,、,MouseMotionListener,的使用。设计如下绘图小程序,选择图形类别,拖动鼠标绘制不同的图形。绘圆时,鼠标起点为圆心,鼠标移动的距离为半径。,WindowListener,的使用。设计如下,GUI,,,运行程序时分别执行窗口的最大化、最小化、激活、失去焦点等操作,把当前操作添加到多行文本框中。,AdjustmentListener,的使用。设计如下调色板程序,移动三个滚动条,改变测试区的背景颜色。,实训,19,简要提示,不仅要设计美观的,GUI,,,还要让程序通过,GUI,与用户交互。,需要考虑用户可能的操作,这些操作将产生事件,事件源是哪些组件,由哪个(或哪些)接口来处理这些事件等。,必须熟悉事件的类型及处理事件的方法。,可以自己选择一些典型例子,练习,KeyListener,、,ItemListener,的使用。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!