




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java输入输出流(1),三、案例简介Java基本输入输出流类四、文件类File五、小结和作业,一、多线程应用,二、图形界面编程:习题讲解,一、多线程应用,GUI线程,1.GUI线程当Java程序中包含图形界面时,Java虚拟机在运行应用程序时会启动更多的线程,其中有两个重要的线程:AWT-EventQuecue:负责处理GUI事件AWT-Windows:负责将窗体或组件绘制到桌面2.ScrollWordsAndTimer.java本例中是一个带滚动字幕的小时钟,单击“开始显示时间”在文本框中显示系统当前时间;单击“停止时间显示”,时间显示就停止滚动的字幕在单击“加速”键后,会加速字幕的滚动速度;单击“停止“后,会停止滚动单击”开始“后,文字会重新开始滚动,一、多线程应用,GUI线程,2.ScrollWordsAndTimer.java读程序,回答问题:本例中的两个线程都是在哪里被创建和启动的?标志位stopScrolling,stopTimer的作用是什么?文字是如何实现滚动的?加速滚动是如何实现的?单击“停止滚动”按钮后,文字的滚动是如何停止的?单击“开始滚动”后又是如何实现滚动的?为什么在单击按钮startWordsBtn以后,判定线程已经进入死亡状态后,才给线程分配新的实体?而且需要将startWordsBtn设置为不可用?,三、多线程应用,GUI线程,2.ScrollWordsAndTimer.java读程序,回答问题:为什么在单击按钮startWordsBtn以后,判定线程已经进入死亡状态后,才给线程分配新的实体?而且需要将startWordsBtn设置为不可用?一个已经运行的线程在没有进入死亡状态之前,不能给它分配新的实体,否则会抛出IllegalThreadStateException;而当通过单击一个按钮让一个线程运行时,在这个线程执行完run()方法之前,用户可能会随时再次单击该按钮,这时也会引发IllegalThreadStateException,所以可以在单击startWordsBtn按钮后,将其设为不可用。,二、习题讲解,1、三角形面积,二、习题讲解,1、三角形面积关键代码,文本框内容发生变化时触发CaretListener侦听器,对文本框中输入文本进行格式检查,二、习题讲解,2、简易计算器关键代码,三、第四章案例介绍,1、英文测试系统,完成一个英文练习小系统,每当用户做完一个题目之后,就判定分数,单击“下一题目”按钮,就再读入一个题目,当做完全部的题目后,通知用户练习已经完成;当单击“重新练习”时,程序从第一个题目开始重新开始练习。,编程要求:要求完成图形界面的设计与编写。将练习题及其选项存储在一个文本文件中,每次从中读取一个题目的信息显示在JFrame框架中。每当用户做完一个题目之后,就判定分数;然后用户可以继续做下一个题目。,三、第四章案例介绍,1、英文测试系统1)界面设计,publicclassEnglishExerciseextendsJFrameimplementsActionListener,类数据成员的定义:图形界面中用到的各种组件的定义,构造方法:EnglishExercise()方法,JTextField,JButton,JLabel,JRadioButton等组件的实例化,设置JFrame布局方式,合理放置各个组件,给相关组件添加事件监听器,设置JFrame的可见性,大小和关闭按钮时的动作,main方法:newEnglishExercise();,定义4个JPanel面板,将相关组件加到JPanel上,三、第四章案例介绍,1、英文测试系统1)界面设计,三、第四章案例介绍,1、英文测试系统2)流程设计,publicclassEnglishExerciseextendsJFrameimplementsActionListener,类数据成员的定义:图形界面中用到的各种组件的定义,存放练习题的相关文件及流对象的定义,ArrayList对象的定义,得分score的定义,构造方法:EnglishExercise()方法,JTextField,JButton,JLabel,JRadioButton等组件的实例化,给相关组件添加事件监听器,设置JFrame布局方式,合理放置各个组件,设置JFrame的可见性,大小和关闭按钮时的动作,实例化文件字符流对象fin和缓冲式字符输入流bin,调用readQuestionFromeFile()方法从题库文件中读取第一个练习题,并将问题部分和选择题选项部分分别显示在JFrame框架中,三、第四章案例介绍,publicclassEnglishExerciseextendsJFrameimplementsActionListener,readQuestionFromeFile()方法:从题库文件中读取练习题方法,并将问题部分和选择题选项部分显示在JFrame框架中,strReadLine=bin.readLine();/读取题库源文件的一行,如果读取出来的一行字符串不是endend,表示还没有读取结束,用分隔符“#”构造字符串记号处理器对象token,用分隔符“#”来分隔字符串strReadLine,并将子串存放在array中,将array中的题目和选项分别显示在JFrame的相应组件中,三、第四章案例介绍,publicclassEnglishExerciseextendsJFrameimplementsActionListener,readQuestionFromeFile()方法:从题库文件中读取练习题方法,并将问题部分和选择题选项部分显示在JFrame框架中,三、第四章案例介绍,Shecutclothwith_asissors#acouple#apairof#two#a#apairof#,array(0),array(1),array(2),array(3),array(4),array(5),publicclassEnglishExerciseextendsJFrameimplementsActionListener,三、第四章案例介绍,actionPerformed()方法:动作事件处理方法,如果触发动作事件的是“重新练习”命令按钮startBtn,将分数score置为0,并显示在分数文本框中;打开读取题库文件的输入流;从题库文件中读取第一个练习题,并将问题部分和选择题选项部分显示在JFrame框架的相应组件中,如果触发动作事件的是“下一题目”命令按钮nextBtn,从题库文件中读取下一个练习题,并将问题部分和选择题选项部分显示在JFrame框架中,如果触发动作事件的是四个单选按钮之一radionBtni,如果用户单击了一个单选按钮并且单击了正确的选项,则score=score+1;将所有的单选按钮设置为不可用状态,1)什么是File类,四、文件类File,在Java语言中,用File类表示文件,File类可以处理各种文件操作。主要用来获取文件本身的一些信息,如文件所在的目录、长度和文件的读写权限等。Java的File类也可表示目录。文件相关的一个重要概念是目录,在Java中并不存在一个对应于目录的类。实际上,不论是在Windows系统还是UNIX系统中,都将目录是为一种特殊的文件。,2)创建File对象,四、文件类File,1)publicFile(Stringpath);如果path是实际存在的路径,则该File对象表示的是目录;如果path是文件名,则该File对象表示的是文件。Filefile=newFile(src/chap09/face1(new).gif);为了加强程序的通用性,建议采用相对路径,不要采用绝对路径。2)publicFile(Stringpath,Stringname);path是路径名,name是文件名。3)publicFile(Filedir,Stringname);dir是路径名,name是文件名。,3)文件名的处理方法,四、文件类File,1)StringgetName():得到一个文件的名称(不包括路径)。2)StringgetPath():得到一个文件的路径名。3)StringgetAbsolutePath():得到一个文件的绝对路径名。4)StringgetParent():得到一个文件的上一级目录名。5)StringrenameTo(FilenewName):将当前文件名更名为给定的文件名。,4)文件属性测试,四、文件类File,1)booleanexists():测试当前File对象所指示的文件是否在操作系统中存在。2)booleancanWrite():测试当前文件是否可写。3)booleancanRead():测试当前文件是否可读。4)booleanisFile():测试当前文件是否是文件(不是目录)。5)booleanisDirectory():测试当前文件是否是目录。,5)目录方法,四、文件类File,1)booleanmkdir():根据当前对象生成一个由该对象指定的文件夹2)Stringlist():列出当前目录下的文件,5)例题1-TestOfFileProperty.java,四、文件类File,题目要求:测试src/chap09/EnglishExercise.java的各种属性。思路建立File对象调用File类的响应方法输出File对象的各种属性运行界面截图,5)例题1-TestOfFileProperty.java,四、文件类File,题目要求:测试src/chap09/EnglishExercise.java的各种属性。关键代码建立File对象Filefile1=newFile(D:/ourworkspace/CasesOfProgramming/src/chap09,EnglishExercise.java);Filefile2=newFile(D:ourworkspaceCasesOfProgrammingsrcchap09);调用File对象的方法输出文件的各种属性System.out.println(文件EnglishExercise是可读的吗:+file1.canRead();System.out.println(文件EnglishExercise的长度:+file1.length();System.out.println(文件EnglishExercise的绝对路径:+file1.getAbsolutePath();System.out.println(文件chap09是目录吗?+file2.isDirectory();,6)File类需要注意的问题:,四、文件类File,1.File类的构造方法没有创建一个文件或文件夹的功能调用File类构造方法时,仅仅是以某个文件名或者目录名为参数,在程序运行环境中创建了一个File对象,而不是在文件系统中创建了一个新文件。File对象可以表示文件系统中对应的目录或文件,也可以表示在文件系统中尚不存在的目录或文件。如:Filefile1=newFile(D:/ourworkspace/CasesOfProgramming/src/chap09,Exercise.java);即使Exercise.java文件不存在,这个构造方法也会创建一个File对象。但不会在系统指定目录中创建文件名为Exercise.java的新文件。,6)File类需要注意的问题:,四、文件类File,1.File类的构造方法没有创建一个文件或文件夹的功能问题:在程序中应该如何创建一个新文件?方法一:调用File对象的方法CreateNewFile();tryif(!file1.exists()file1.createNewFile();catch(IOExceptione)方法二:以File对象为参数来调用FileOutputStream的构造方法来创建对象Fout时,如果创建File对象的文件名不存在,它可以在指定的目录下创建这个新文件。FiledstFile=newFile(src/chap09/face1(new).gif);FileOutputStreamfout=newFileOutputStream(dstFile);,6)File类需要注意的问题:,四、文件类File,2.程序中文件目录的表示问题一、使用绝对路径1)使用Windows环境中的反斜杠“”来表示一个路径表达式。Filefile1=newFile(D:ourworkspaceCasesOfProgrammingsrcchap09,EnglishExercise.java);2)使用UNIX环境中的正斜杠“/”来表示一个路径表达式Filefile1=newFile(D:/ourworkspace/CasesOfProgramming/src/chap09,EnglishExercise.java);,6)File类需要注意的问题:,四、文件类File,2.程序中文件目录的表示问题一、使用绝对路径3)直接使用没有转义处理正斜杠“/”来表示一个路径表达式。Filefile1=newFile(D:/ourworkspace/CasesOfProgramming/src/chap09,EnglishExercise.java);2)和3)这两种正斜杠的表达方式在Windows环境中是允许的,但是当程序被移植到其他类型的操作系统中的时候,这种使用正斜杠的表达方式可能就无法通过编译了,所以这种路径表达方式尽量不要使用。,6)File类需要注意的问题:,四、文件类File,2.程序中文件目录的表示问题二、使用相对路径1)以整个工程文件根目录的相对目录来表示一个文件Filefile1=newFile(src/chap09,EnglishExercise.java);Filefile1=newFile(src/chap09/EnglishExercise.java);2)使用File类的静态实例域:seperator,这个域中保存着当前目录分隔符的相关信息。Filefile1=newFile(src+File.separator+chap09,EnglishExercise.java);如果不能保证目录分隔符到底是反斜杠“”还是正斜杠“/”,用File.separator来表达一个目录更有利于程序在不同操作系统之间的移植。,6)File类需要注意的问题:,四、文件类File,2.程序中文件目录的表示问题三、使用系统的环境参数来构造文件路径1)System.getProperty()方法可以取得很多我们经常要用到的环境参数。StringuserDir=System.getProperty(user.dir);Filefile1=newFile(userDir+File.separator+src+File
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生育服务保障承诺书(5篇)
- 公交司机考试题库及答案
- 软件开发测试及维护合同书
- 滑县特岗地理考试真题及答案
- 枣庄物理中考试题及答案
- 汽车美容及维修服务合同书
- 合肥七中考试题型及答案
- 光电器件技术考试题库及答案
- 软件测试笔试题及答案解析大全
- 入伍政治考核笔试题及答案
- 小学道德与法治学科教师专业素质考试试题及答案
- GB∕T 23322-2018 纺织品 表面活性剂的测定 烷基酚和烷基酚聚氧乙烯醚
- 全国质量奖现场汇报材料(生产过程及结果)课件
- 政策评价-卫生政策分析课件
- 高中物理实验—测定物体的速度及加速度(含逐差法)
- 饮食习惯与健康
- 华为人力资源管理纲要2.0
- 第二章 园艺设施的类型、结构、性能及应用
- 银行卡收单外包服务协议范本
- 流动资金缺口测算表.xls
- 中国空白地图大全(可直接打印)(共49页)
评论
0/150
提交评论