




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与技术学院网络工程教研室 Java输入输出流(1) 三、案例简介Java基本输入输出流类 四、文件类File 五、小结和作业 一、多线程应用 二、图形界面编程:习题讲解 计算机科学与技术学院网络工程教研室 一、多线程应用 GUI线程 1. GUI线程 当Java程序中包含图形界面时,Java虚拟机在运行应用程序时 会启动更多的线程,其中有两个重要的线程: uAWT-EventQuecue:负责处理GUI事件 uAWT-Windows:负责将窗体或组件绘制到桌面 2. ScrollWordsAndTimer.java u本例中是一个带滚动字幕的小时钟,单击“开始显示时间”在文本 框中显示系统当前时间;单击“停止时间显示”,时间显示就停止 u滚动的字幕在单击“加速”键后,会加速字幕的滚动速度; 单击“ 停止“后,会停止滚动 u单击”开始“后,文字会重新开始滚动 计算机科学与技术学院网络工程教研室 一、多线程应用 GUI线程 2. ScrollWordsAndTimer.java 读程序,回答问题: u本例中的两个线程都是在哪里被创建和启动的? u标志位stopScrolling, stopTimer的作用是什么? u文字是如何实现滚动的?加速滚动是如何实现的? u单击“停止滚动”按钮后,文字的滚动是如何停止的?单击“ 开始滚动”后又是如何实现滚动的? u为什么在单击按钮startWordsBtn以后,判定线程已经进入 死亡状态后,才给线程分配新的实体?而且需要将 startWordsBtn设置为不可用? 计算机科学与技术学院网络工程教研室 三、多线程应用 GUI线程 2. ScrollWordsAndTimer.java 读程序,回答问题: u为什么在单击按钮startWordsBtn以后,判定线程已经进入 死亡状态后,才给线程分配新的实体?而且需要将 startWordsBtn设置为不可用? 一个已经运行的线程在没有进入死亡状态之前,不能给它分 配新的实体,否则会抛出IllegalThreadStateException; 而当通过单击一个按钮让一个线程运行时,在这个线程执行 完run()方法之前,用户可能会随时再次单击该按钮,这时也 会引发IllegalThreadStateException,所以可以在单击 startWordsBtn按钮后,将其设为不可用。 计算机科学与技术学院网络工程教研室 二、习题讲解 1、三角形面积 计算机科学与技术学院网络工程教研室 二、习题讲解 1、三角形面积关键代码 文本框内容发生变化时触发CaretListener侦听器,对文本框 中输入文本进行格式检查 计算机科学与技术学院网络工程教研室 二、习题讲解 2、简易计算器关键代码 计算机科学与技术学院网络工程教研室 三、第四章案例介绍 1、英文测试系统 完成一个英文练习小系统,每当用户做完一个题目之后,就 判定分数,单击“下一题目”按钮,就再读入一个题目,当做 完全部的题目后,通知用户练习已经完成;当单击“重新练习 ”时,程序从第一个题目开始重新开始练习。 编程要求: 要求完成图形界面的设计与编写。 将练习题及其选项存储在一个文本文件中,每次从中读取 一个题目的信息显示在JFrame框架中。 每当用户户做完一个题题目之后,就判定分数;然后用户户可以 继续继续 做下一个题题目。 计算机科学与技术学院网络工程教研室 三、第四章案例介绍 1、英文测试系统 1)界面设计 public class EnglishExercise extends JFrame implements ActionListener 类数据成员的定义:图形界面中用到的各种组件的定义 构造方法:EnglishExercise ()方法 JTextField,JButton,JLabel,JRadioButton等组件的实例化 设置JFrame布局方式,合理放置各个组件 给相关组件添加事件监听器 设置JFrame的可见性,大小和关闭按钮时的动作 main方法:new EnglishExercise (); 定义4个JPanel面板,将相关组件加到JPanel上 计算机科学与技术学院网络工程教研室 三、第四章案例介绍 1、英文测试系统 1)界面设计 计算机科学与技术学院网络工程教研室 三、第四章案例介绍 1、英文测试系统 2)流程设计 计算机科学与技术学院网络工程教研室 public class EnglishExercise extends JFrame implements ActionListener 类数据成员的定义:图形界面中用到的各种组件的定 义,存放练习题的相关文件及流对象的定义, ArrayList对象的定义,得分score的定义 构造方法:EnglishExercise ()方法 JTextField,JButton,JLabel,JRadioButton等组件 的实例化,给相关组件添加事件监听器,设置JFrame 布局方式,合理放置各个组件,设置JFrame的可见性 ,大小和关闭按钮时的动作 实例化文件字符流对象fin和缓冲式字符输入流bin 调用readQuestionFromeFile()方法从题库文件中读 取第一个练习题,并将问题部分和选择题选项部分 分别显示在JFrame框架中 三、第四章案例介绍 计算机科学与技术学院网络工程教研室 public class EnglishExercise extends JFrame implements ActionListener readQuestionFromeFile()方法:从题库文件中读取练习题方 法,并将问题部分和选择题选项部分显示在JFrame框架中 strReadLine = bin.readLine(); / 读取题库源文件的一行 如果读取出来的一行字符串不是“endend“,表示还没有 读取结束,用分隔符“#”构造字符串记号处理器对象token ,用分隔符“#”来分隔字符串strReadLine,并将子串存放 在array中 将array中的题目和选项分别显示在JFrame的相应组件中 三、第四章案例介绍 计算机科学与技术学院网络工程教研室 public class EnglishExercise extends JFrame implements ActionListener readQuestionFromeFile()方法:从题库文件中读取练习题方 法,并将问题部分和选择题选项部分显示在JFrame框架中 三、第四章案例介绍 She cut cloth with _asissors#a couple#a pair of#two#a#a pair of# array(0)array(1) array(2) array(3) array(4) array(5) 计算机科学与技术学院网络工程教研室 public class EnglishExercise extends JFrame implements ActionListener 三、第四章案例介绍 actionPerformed()方法:动作事件处理方法 如果触发动作事件的是“重新练习”命令按钮startBtn,将分数score 置为0,并显示在分数文本框中;打开读取题库文件的输入流;从 题库文件中读取第一个练习题,并将问题部分和选择题选项部分 显示在JFrame框架的相应组件中 如果触发动作事件的是“下一题目”命令按钮nextBtn, 从题库文件中读取下一个练习题,并将问题部分和选择 题选项部分显示在JFrame框架中 如果触发动作事件的是四个单选按钮之一 radionBtni,如果用户单击了一个单选按钮并且单 击了正确的选项,则score=score+1;将所有的单选 按钮设置为不可用状态 计算机科学与技术学院网络工程教研室 1)什么是File类 四、文件类File u在Java语言中,用File类表示文件,File类可以处理各种 文件操作。 主要用来获取文件本身的一些信息,如文件所在的目录、长 度和文件的读写权限等。 uJava的File类也可表示目录。 文件相关的一个重要概念是目录,在Java中并不存在一个对 应于目录的类。实际上,不论是在Windows系统还是UNIX 系统中,都将目录是为一种特殊的文件。 计算机科学与技术学院网络工程教研室 2)创建File对象 四、文件类File u1)public File(String path); 如果path是实际存在的路径,则该File对象表示的是目录; 如果path是文件名,则该File对象表示的是文件。 File file=new File(“src/chap09/face1(new).gif“); 为了加强程序的通用性,建议采用相对路径,不要采用绝对 路径。 u2)public File(String path,String name); path是路径名, name是文件名。 u3)public File(File dir,String name);dir是路径名,name 是文件名。 计算机科学与技术学院网络工程教研室 3)文件名的处理方法 四、文件类File u1)String getName( ): 得到一个文件的名称(不包括路径)。 u2)String getPath( ): 得到一个文件的路径名。 u3)String getAbsolutePath( ): 得到一个文件的绝对路径名。 u4)String getParent( ): 得到一个文件的上一级目录名。 u5)String renameTo(File newName): 将当前文件名更名为给定的文件名。 计算机科学与技术学院网络工程教研室 4)文件属性测试 四、文件类File u1)boolean exists( ): 测试当前File对象所指示的文件是否在操作系统中存在。 u2)boolean canWrite( ): 测试当前文件是否可写。 u3)boolean canRead( ): 测试当前文件是否可读。 u4)boolean isFile( ): 测试当前文件是否是文件(不是目录)。 u5)boolean isDirectory( ): 测试当前文件是否是目录。 计算机科学与技术学院网络工程教研室 5)目录方法 四、文件类File u1)boolean mkdir( ): 根据当前对象生成一个由该对象指定的文件夹 u2)String list( ): 列出当前目录下的文件 计算机科学与技术学院网络工程教研室 5)例题1-TestOfFileProperty.java 四、文件类File u题目要求:测试src/chap09/EnglishExercise.java的各种 属性。 p思路 建立File对象 调用File类的响应方法输出File对象的各种属性 p运行界面截图 计算机科学与技术学院网络工程教研室 5)例题1-TestOfFileProperty.java 四、文件类File u题目要求:测试src/chap09/EnglishExercise.java的各种属性 。 p关键代码 建立File对象 File file1 = new File(“D:/ourworkspace/CasesOfProgramming/src/chap09“, “EnglishExercise.java“); File file2 = new File(“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 u1.File类的构造方法没有创建一个文件或文件夹的功能 调用File类构造方法时,仅仅是以某个文件名或者目录名为参 数,在程序运行环境中创建了一个File对象,而不是在文件系统 中创建了一个新文件。 File对象可以表示文件系统中对应的目录或文件,也可以表示 在文件系统中尚不存在的目录或文件。 如: File file1 = new File( “D:/ourworkspace/CasesOfProgramming/src/chap09“, “Exercise.java“); 即使Exercise.java文件不存在,这个构造方法也会创建一个File 对象。 但不会在系统指定目录中创建文件名为Exercise.java的新文件 。 计算机科学与技术学院网络工程教研室 6)File类需要注意的问题: 四、文件类File u1.File类的构造方法没有创建一个文件或文件夹的功能 问题:在程序中应该如何创建一个新文件? 方法一:调用File对象的方法CreateNewFile(); try if (!file1.exists() file1.createNewFile(); catch (IOException e) 方法二:以File对象为参数来调用FileOutputStream的构造方 法来创建对象Fout时,如果创建File对象的文件名不存在,它 可以在指定的目录下创建这个新文件。 File dstFile = new File(“src/chap09/face1(new).gif“); FileOutputStream fout = new FileOutputStream(dstFile); 计算机科学与技术学院网络工程教研室 6)File类需要注意的问题: 四、文件类File u2.程序中文件目录的表示问题 一、使用绝对路径 1)使用Windows环境中的反斜杠“”来表示一个路径表达式。 File file1 = new File( “D:ourworkspaceCasesOfProgrammingsrcchap09“, “EnglishExercise.java“); 2)使用UNIX环境中的正斜杠“/”来表示一个路径表达式 File file1 = new File(“D:/ourworkspace/CasesOfProgramming/src/chap09“, “EnglishExercise.java“); 计算机科学与技术学院网络工程教研室 6)File类需要注意的问题: 四、文件类File u2.程序中文件目录的表示问题 一、使用绝对路径 3)直接使用没有转义处理正斜杠“/”来表示一个路径表达式。 File file1 = new File(“D:/ourworkspace/CasesOfProgramming/src/chap09“,“EnglishExercis e.java“); 2)和3)这两种正斜杠的表达方式在Windows环境中是允许的 ,但是当程序被移植到其他类型的操作系统中的时候,这种使 用正斜杠的表达方式可能就无法通过编译了,所以这种路径表 达方式尽量不要使用。 计算机科学与技术学院网络工程教研室 6)File类需要注意的问题: 四、文件类File u2.程序中文件目录的表示问题 二、使用相对路径 1)以整个工程文件根目录的相对目录来表示一个文件 File file1 = new File(“src/chap09“, “EnglishExercise.java“); File file1 = new File(“src/chap09/EnglishExercise.java“); 2)使用File类的静态实例域:seperator,这个域中保存着当 前目录分隔符的相关信息。 File file1 = new File( “src“ + File.separator + “chap09“, “EnglishExercise.java“); 如果不能保证目录分隔符到底是反斜杠“”还是正斜杠“/”,用 File.separator来表达一个目录更有利于程序在不同操作系统之 间的移植。 计算机科学与技术学院网络工程教研室 6)File类需要注意的问题: 四、文件类File u2.程序中文件目录的表示问题 三、使用系统的环境参数来构造文件路径 1)System.getProperty()方法可以取得很多我们经常要用到的 环境参数。 String userDir=System.getProperty(“user.dir“); File file1= new File (userDir+File.separator+“src“+Fil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮行业食品安全监管与责任追究合同
- 潮汕职院刘艳红参赛作品版权使用与分享合同
- 城市综合体餐饮区承包经营合同范本
- 减重患者专科护理体系构建
- 2025年聘用驾驶员协议
- 护理文化建设与发展
- 高中物理选修3-3知识点梳理和总结
- 外科护理肛裂病人
- SBAR模式护理病案标准化应用
- 短文提示填空16篇-2025年中考英语高分提升(答案+解析)
- 政府采购基础知识培训(最终稿)
- 新技术、新工艺、对提高工程质量、缩短工期、降低造价的可行性
- 重庆大学大学化学Ⅰ期末考试卷A
- 1例新冠病毒感染患者护理查房
- 全过程工程咨询管理服务方案
- 铝合金门窗工程技术标
- 经闭孔无张力尿道中断悬吊术
- 2023年安全监督员述职报告范文
- 八年级英语下册期末复习课件
- 电工基本知识培训资料课件
- 《园林花卉学》课后题及答案
评论
0/150
提交评论