




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院信管08级java程序设计报告java语言课程设计报告题 目:记事本的制作设 计 者: 专业班级:学 号:指导教师: 2011年 11 月 26 日河南理工大学计算机学院19目录摘要1一、本组课题及程序功能要求2二、系统需求分析22.1 系统名称22.2 系统介绍32.3 开发背景3三、系统总体设计33.1系统功能结构图33.2系统数据流程图3四、系统设计介绍44.1 java语言的基本知识44.2 本程序所用知识点64.3 io流7五、 程序代码设计9六、系统效果演示12七、设计体会15参考文献15附:程序清单15 摘要现在网络上各种记事本软件数不胜数,功能也是应有尽有,有能改变字体的,有能改变颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁琐,是初级使用者一时难以掌握,仅从日常应用方面来说,一个记事本只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需求设计了一个的简单的记事本程序。该程序报告里的程序是使用java编写的,实现记事本的功能,参考windows中记事本的功能。要求打开文件,读取文件中的文本信息。显示、编辑修改文本信息。java记事本采用的是javase中的gui和io基本技术,可以实现文本的简单操作,如:打开文档、编辑文档、保存文档等。一、本组课题及程序功能要求课题名称:java记事本的制作要求:设计一个类似于window记事本的java程序,可以基本实现以下功能1) 文件的打开、编辑、保存。2) 对文本的各种编辑操作。3) 执行完操作后,能够顺利关闭记事本。二、系统需求分析2.1 系统名称 java记事本2.2 系统介绍java记事本采用的是javase中的gui和io基本技术,可以实现文本的简单操作,如:打开文档、编辑文档、保存文档等。具体操作如下:1.点击文件打开 可以浏览电脑上的文件。2.当选择一个txt文件时,确定可以打开此文件。3.在文档显示界面可以输入文档对其进行编辑。4.当选择保存时,可以保存到指定的位置。5.点击退出功能按键可以退出本记事本程序。2.3 开发背景现在网络上各种记事本软件数不胜数,功能也是应有尽有,有能改变字体的,有能改变颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁琐,是初级使用者一时难以掌握,仅从日常应用方面来说,一个记事本只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需求设计了一个的简单的记事本程序。三、系统总体设计打开3.1系统功能结构图文件保存退出记事本编辑显示界面文字显示3.2系统数据流程图文本文档打开主界面打开编辑文本文档保存退出四、系统设计介绍4.1 java语言的基本知识(1)java平台分类javase(java platform standard edition)java平台标准版,包含那些构成java语言核心的类,可以理解为学习java的基础javaee(java platform enterpriseedition)java平台企业版,包含javase,并且还包含用于开发企业级应用的类准确的说javaee是一套用于企业开发的技术规范,包含很多组件,13种核心技术,如:xml、jsp、servlet、jdbc、java mail等javame(java platform micro edition)java平台微型版,包含javase的一部分,另外提供一些用于小型设备上的类,例如:手机、机顶盒、汽车导航仪java语言的编译过程如下图所示:(2) java语言的基本格式所有java代码都应该在一个class中java是严格区分大小写的java是一种自由格式的语言。java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束。(3)java语言的标识符通用规范类名、接口名:所有单词首字母大写,驼峰式命名,例如:xxxyyyzzz变量名、函数名:第一个单词首字母小写,其他单词首字母大写,驼峰式命名,例如:xxxyyyzzz常量名:所有字母都大写,单词之间用下划线分割,例如:xxx_yyy_zzz包名:全部小写,例如:xxx.yyy.zzz(4) java语言的关键字注:java 无sizeof ,goto, const 关键字,但不能用goto const作为变量名4.2 本程序所用知识点(1) gui概念gui是graphical user interface的缩写,图形化用户界面(2) 布局管理flowlayout(流式布局管理器)从左到右的顺序排列。borderlayout(边界布局管理器)东,南,西,北,中gridlayout(网格布局管理器)规则的矩阵cardlayout(卡片布局管理器)选项卡gridbaglayout(网格包布局管理器)非规则的矩阵 (3) 建立一个窗体窗体中可以存放各种组件,所以窗体是容器container。创建时我们使用的是它的子类container的常用子类有两个,window和panel。window是我们常用的窗体,panel是用来布局的不可见的。window也有两个常用子类,frame和dialog。frame是我们常用的带有标题和边框的顶层窗口,dialog是对话框。所有awt包中的类都会运行在awt线程上(4) 事件处理事件处理机制事件:用户对组件的一个操作。事件源:发生事件的组件。监听器:我们需要处理某个事件,就需要在发生事件的组件上添加监听器,也就是java.awt.event包中xxxlistener接口的子类。事件处理器:监听器中的方法。监听器被添加在组件上之后,组件上发生了对应事件就会执行指定方法。(5) 常用事件分类窗体事件,windowevent,窗体打开、关闭、正在关闭、激活、最小化等。鼠标事件,mouseevent,鼠标按下、抬起、进入、移出等。键盘事件,keyevent,键盘按下、抬起等。动作事件,actionevent,在某一组件上发生了定义好的动作,例如按钮上鼠标点击或按空格,菜单上鼠标点击或按回车等。4.3 io流(1) io流基本概念 io流用来处理设备之间的数据传输 java对数据的操作是通过流的方式 java用于操作流的对象都在io包中 流按操作对象分为两种:字节流与字符流。 字节流可以操作任何数据,字符流只能操作纯字符数据比较方便。 流按流向分为:输入流,输出流。(2) io流常用基本类 字节流的抽象基类: inputstream ,outputstream 字符流的抽象基类: reader , writer 由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。 如:inputstream的子类fileinputstream。 如:reader的子类filereader。 inputstreamreader是reader的子类(3) 字符流缓冲区读写 java提供了带缓冲功能的reader和writer类:bufferedreader,bufferedwriter 这两个类都是提供包装功能,需要提供其他流来使用,给其他流增加缓冲功能 当我们调用bufferedreader读取数据时,程序会从文件中一次读取8192个字符用来缓冲 当我们调用bufferedwriter写出数据时,程序会先将数据写出到缓冲数组,直到写满8192个才一次性刷出到文件(4) io流基本应用总结 流是用来处理数据的。 处理数据时,一定要先明确数据源,或者数据目的地 数据源可以是文件,可以是键盘或者其他设备。 数据目的地可以是文件、显示器或者其他设备。 而流只是在帮助数据进行传输,并对传输的数据进行处理,比如过滤处理、转换处理等。5、 程序代码设计(1)界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。主要代码:private menubar createmenubar() menubar menubar = new menubar(); / 菜单栏menu menu = new menu(文件); / 菜单menuitem openmenuitem = new menuitem(打开); / 菜单项menuitem savemenuitem = new menuitem(保存);menuitem exitmenuitem = new menuitem(退出);menu.add(openmenuitem); / 将菜单项添加到菜单menu.add(savemenuitem);menu.addseparator(); / 给菜单添加分割符menu.add(exitmenuitem);menubar.add(menu); / 将菜单添加到菜单栏openmenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) open(););savemenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) save(););exitmenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) frame.dispose(););return menubar;(2)功能设计对每个菜单项进行注册监听。点击不同菜单项时,显示不同界面。主要代码:private void save() filedialog dialog = new filedialog(frame, 保存, filedialog.save);dialog.setvisible(true);string dir = dialog.getdirectory();string name = dialog.getfile();if (dir != null & name != null) file file = new file(dir, name);savefile(file);/ 将textarea中的文本写出到file中private void savefile(file file) bufferedwriter writer = null;try writer = new bufferedwriter(new filewriter(file);writer.write(textarea.gettext(); / 获取textarea中的文本, 写出 catch (ioexception e) throw new runtimeexception(e); finally if (writer != null)try writer.close(); catch (ioexception e) e.printstacktrace();private void open() filedialog dialog = new filedialog(frame, 打开, filedialog.load);dialog.setvisible(true);string dir = dialog.getdirectory(); / 获取选中的路径string name = dialog.getfile(); / 获取选中的文件名if (dir != null & name != null) / 不等于空就代表选择了一个文件file file = new file(dir, name); / 将路径名和文件名封装成一个file对象loadfile(file);/ 定义输入流, 从文件中读取文本, 追加到textarea中public void loadfile(file file) bufferedreader reader = null;try reader = new bufferedreader(new filereader(file);stringbuilder sb = new stringbuilder();string line;while (line = reader.readline() != null)sb.append(line + rn); / 读取一行向stringbuilder中添加一行textarea.settext(sb.tostring(); / 所有都读完之后, 一次性添加到textarea catch (ioexception e) throw new runtimeexception(e); finally if (reader != null)try reader.close(); catch (ioexception e) e.printstacktrace();六、系统效果演示java记事本采用的是javase中的gui和io基本技术,主界面如下记事本主界面文件功能点击文件打开 可以浏览电脑上的文件当选择一个txt文件时,确定可以打开此文件当选择保存时 可以保存到指定的 位置七、设计体会经过一个星期的我的记事本的课程设计,我在向华萍老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。首先,让我加深了对java语言的理论知识的理解;其次,让我更加熟练的掌握了java语言的设计能力并且有了实践经验;再次,在设计过程中,学到了老师没有在课堂上没有教授的知识;最后,加强了我对java语言的学习兴趣和好感。参考文献1 耿详义,张跃平. java 2 实用教程. 北京:清华大学出版社,2004.22 张利国.java实用教程案例.北京:清华大学出版社,2003.103 周晓聪,等.面向对象程序设计与java语言.北京:机械工业出版社,2004.34 李尊朝.java语言程序设计.北京:中国铁道出版社,2004.25 (美)philip heller.complate java 2 certification study guide fourth edition(java 2 证学习指南) (第四版 英文版). 北京:电子工业出版社,2004.1附:程序清单package zhao.fang.notepad;import java.awt.filedialog;import java.awt.frame;import java.awt.menu;import java.awt.menubar;import java.awt.menuitem;import java.awt.textarea;import java.awt.toolkit;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.keyadapter;import java.awt.event.keyevent;import java.awt.event.windowadapter;import java.awt.event.windowevent;import java.io.bufferedreader;import java.io.bufferedwriter;import java.io.file;import java.io.filereader;import java.io.filewriter;import java.io.ioexception;public class notepad private frame frame; / 由于类中几个方法都要访问这个frame, 所以定义成成员变量private textarea textarea;public notepad() frame = createframe(); / 创建窗体menubar menubar = createmenubar(); / 创建菜单栏createtextarea();frame.add(textarea); / 将文本域添加到窗体, 默认是borderlayout.center, 铺满窗体frame.setmenubar(menubar); / 给窗体设置菜单栏(一个窗体只能设置一个菜单栏)frame.setvisible(true);private void createtextarea() textarea = new textarea(); / 创建文本域textarea.addkeylistener(new keyadapter() public void keypressed(keyevent e) if(e.getkeycode() = keyevent.vk_o & e.iscontroldown()/ 按下了o, 并且按了ctrlopen();if(e.getkeycode() = keyevent.vk_s & e.iscontroldown()/ 按下了s, 并且按了ctrlsave(););private menubar createmenubar() menubar menubar = new menubar(); / 菜单栏menu menu = new menu(文件); / 菜单menuitem openmenuitem = new menuitem(打开); / 菜单项menuitem savemenuitem = new menuitem(保存);menuitem exitmenuitem = new menuitem(退出);menu.add(openmenuitem); / 将菜单项添加到菜单menu.add(savemenuitem);menu.addseparator(); / 给菜单添加分割符menu.add(exitmenuitem);menubar.add(menu); / 将菜单添加到菜单栏openmenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) open(););savemenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) save(););exitmenuitem.addactionlistener(new actionlistener() public void actionperformed(actionevent e) frame.dispose(););return menubar;private void save() filedialog dialog = new filedialog(frame, 保存, filedialog.save);dialog.setvisible(true);string dir = dialog.getdirectory();string name = dialog.getfile();if (dir != null & name != null) file file = new file(dir, name);savefile(file);/ 将textarea中的文本写出到file中private void savefile(file file) bufferedwriter writer = null;try writer = new bufferedwriter(new filewriter(file);writer.write(textarea.gettext(); / 获取textarea中的文本, 写出 catch (ioexception e) throw new runtimeexception(e); finally if (writer != null)try writer.close(); catch (ioexception e) e.printstacktrace();private void open() filedialog dialog = new filedialog(frame, 打开, filedialog.load);dialog.setvisible(true);string dir = dialog.getdirectory(); / 获取选中的路径string name = dialog.getfile(); / 获取选中的文件名if (dir != null & na
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025若合同协议只有英文版,没有中文版,是否可认为无效
- 2025租房中介服务合同协议样本
- 2025工程承包合同违约金的计算
- 2025关于终止技术服务合同的的情形
- 设施维修维护合同范本
- 装修增补项目合同范本
- 房建拆除合同范本
- 北京转租房合同范本
- 2025重庆汽车租赁合同模板
- 小区活动招商合同范本
- 2024全新标前协议书范本下载
- 企业员工职业道德考核制度
- 公司安全事故隐患内部举报、报告奖励制度
- 【初中物理】质量与密度练习题 2024-2025学年初中物理人教版八年级上册
- 南外初中小语种课程设计
- 【上海市塑料探究所企业员工激励机制存在的问题及优化建议探析(论文)8200字】
- Unit2 Whats your hobby-教案人教精通版英语六年级上册
- 【必刷题】2024五年级英语上册一般过去时专项专题训练(含答案)
- T-CTSS 86-2024 原味茶饮料标准
- NB-T 10436-2020 电动汽车快速更换电池箱冷却接口通.用技术要求
- 简易财务报表附注模板
评论
0/150
提交评论