




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告(本科)课程: 面向对象程序设计学号:1110421122 1110421086 姓名: 潘雨胜 邵阳班级: 网络工程2班教师: 钱田芬时间: 2013.11.20-2013.12.20计算机科学与技术系设计名称:编写一个记事本程序设计内容、目的与要求:1实验内容1.1编写一个简单记事本程序;1.2能实现编辑、保存、另存为、查找替换等功能2实验要求2.1用图形用户界面实现;2.2用文件输入输出流编译。2.3实现文件和编辑菜单里的功能;3实验目的3.1能够实现基本的文件录入即新建事件的功能;3.2能够实现事件的保存和另存功能以及事件的删除;3.3能够实现事件的查找和替换功能,保证程序
2、的可修改性;3.4能够实现事件内容的复制,粘贴和拷贝功能;3.5最后是关于对改程序的帮助即改程序的介绍。计划与进度安排:2013.11.20-2013.11.30 对题目有基本的思路 怎样去编译程序,查阅资料,惊醒初步的准备工作;2013.12.01-2013.12.10 编译程序并上机调试运行,看是否能正确运行,并将有用的实验结果截图保存,编写文档,将程序每部步实现的功能,用电子文档的形式表达出来,并且用图文并茂的方式表现出自己的每一步设计思路;2013.12.10-2013.12.20 将编译好的源程序和电子文档仔细查看,再次运行检查是否有误,然后再将电子文档打印成册,将程序以及电子文档让
3、验收老师验收,如果有误还需再次修改。 设计过程、步骤(可加页):4需求分析4.1系统概述;该报告中的程序是使用java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。该程序主要用到了java swing和事件监听等。4.2功能需求描述; 本程序要构建的记事本程序参照了windows操作系统的记事本工具,其功能有以下几个方面:(1).菜单中有“文件”,“编辑”,“关于”三个主菜单。(2)“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另外保存文件,退出
4、记事本。(3)“编辑”中有“剪切”“复制”“粘贴”“全选”“查找”“替换”六个字菜单:用于剪切文字,复制文字,粘贴文字,全部选中。增加了“查找”“替换”子菜单来对文字进行查找和替换。(4)“关于”菜单中有关于记事本程序的制作日期,作者等信息。4.3总体设计 开发与设计的总体思想: 在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了jscrollpane,jmenu,jtextpane,jfilechooser等。jmenu用来制作菜单,菜单包括“文件”“编辑”“关于”。jtextarea主要用来输入文本。 系统模块结构图 模块设计 系统模块流程图 5详细设计 5.1主界面模块首先创建一
5、个名为notebook的类并继承frame类实现监听接口作为最底层的容器(具体过程在“4.3.2自定义类及接口说明”作说明)。菜单栏中有“文件”、“编辑”、“帮助”三项菜单,分别添加的相应的项,各实现其功能。 5.1.1主界面主要代码public notebook()this.settitle(记事本);contianer=this.getcontentpane();contianer.setlayout(new borderlayout();jta=new jtextarea();contianer.add(jta);jmenubar mb=new jmenubar();buildmainm
6、enu(mb);this.setjmenubar(mb);this.setvisible(true);this.setsize(650, 450); 5.2文件界面5.2.1文件界面包括新建(new)、打开(open)、保存(save)和另存(saves)为退出(exit)等功能,通过给各功能初始化容器、初始化组件、设置事件监听器,下面有其实现方法: void buildmainmenu(jmenubar mb) jmenu filemenu=new jmenu(文件(f));filemenu.setmnemonic(keyevent.vk_f);jmenuitem newmenuitem=n
7、ew jmenuitem(新建);filemenu.add(newmenuitem);jmenuitem openmenuitem=new jmenuitem(打开);openmenuitem.setmnemonic(keyevent.vk_o);openmenuitem.addactionlistener(new openactionlistener();filemenu.add(openmenuitem);jmenuitem savemenuitem=new jmenuitem(保存);savemenuitem.setmnemonic(keyevent.vk_s);savemenuitem
8、.addactionlistener(new saveactionlistener();filemenu.add(savemenuitem);jmenuitem saveasmenuitem=new jmenuitem(另存为);saveasmenuitem.setmnemonic(keyevent.vk_a);saveasmenuitem.addactionlistener(new saveactionlistener();filemenu.add(saveasmenuitem);jmenuitem exitmenuitem=new jmenuitem(退出);exitmenuitem.se
9、tmnemonic(keyevent.vk_e); 5.2.2各部分截图; 打开界面截图; 保存部分截图; 退出部分截图 5.2.3各部分实现的功能框图 保存) 新建5.3 编辑界面 5.3.1主要有剪切、复制、粘贴、查找和替换功能,通过cut,copy,paste,serach和ache实现各功能,然后对每个功能初始化容器、初始化组件、设置事件监听器保证功能的实现,下面是实现各功能的主要代码:exitmenuitem.addactionlistener(new exitactionlistener();filemenu.add(exitmenuitem);mb.add(filemenu);j
10、menu editmenu=new jmenu(编辑(e));editmenu.setmnemonic(keyevent.vk_e);jmenuitem cutmenuitem=new jmenuitem(剪切);cutmenuitem.setmnemonic(keyevent.vk_t);cutmenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_x, actionevent.ctrl_mask);cutmenuitem.addactionlistener(new cutactionlistener();editmenu.add
11、(cutmenuitem);jmenuitem copymenuitem=new jmenuitem(复制);copymenuitem.setmnemonic(keyevent.vk_c);copymenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_c, actionevent.ctrl_mask);copymenuitem.addactionlistener(new copyactionlistener();editmenu.add(copymenuitem);jmenuitem pastemenuitem=new jmenu
12、item(粘贴);pastemenuitem.setmnemonic(keyevent.vk_p);pastemenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_v, actionevent.ctrl_mask);pastemenuitem.addactionlistener(new pasteactionlistener();editmenu.add(pastemenuitem);jmenuitem sallmenuitem=new jmenuitem(全选);sallmenuitem.setmnemonic(keyevent
13、.vk_a);sallmenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_a, actionevent.ctrl_mask);sallmenuitem.addactionlistener(new sallactionlistener();editmenu.add(sallmenuitem);jmenuitem searchmenuitem=new jmenuitem(查找);searchmenuitem.setmnemonic(keyevent.vk_s);searchmenuitem.addactionlistener(new
14、 searchactionlistener();editmenu.add(searchmenuitem);jmenuitem chanmenuitem=new jmenuitem(替换);chanmenuitem.setmnemonic(keyevent.vk_g);chanmenuitem.addactionlistener(new chanactionlistener();editmenu.add(chanmenuitem);mb.add(editmenu); 5.3.2截图; 剪切 查找替换5.3.3各功能的实现框图; 剪切粘贴删除 5.4帮助界
15、面 5.4.1帮助界面主要是对该程序的介绍,以及设计人员的介绍,通过about方法来实现的,下面是主要的代码:jmenu helpmenu=new jmenu(帮助(h));helpmenu.setmnemonic(keyevent.vk_h);jmenuitem abouthmenuitem=new jmenuitem(关于记事本);abouthmenuitem.setmnemonic(keyevent.vk_a);abouthmenuitem.addactionlistener(new abouthactionlistener();helpmenu.add(abouthmenuitem);
16、mb.add(helpmenu); 5.4.2帮助部分截图: 6、原代码import java.awt.*;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.keyevent;import java.io.file;import java.io.filereader;import java.io.filewriter;import javax.swing.*;public class notebook extends jframe container cont
17、ianer;jfilechooser fc=new jfilechooser(); file file=null; jtextarea jta; private myfinddialog fd = new myfinddialog(this, jta);public notebook()this.settitle(记事本);contianer=this.getcontentpane();contianer.setlayout(new borderlayout();jta=new jtextarea();contianer.add(jta);jmenubar mb=new jmenubar();
18、buildmainmenu(mb);this.setjmenubar(mb);this.setvisible(true);this.setsize(650, 450); void buildmainmenu(jmenubar mb) jmenu filemenu=new jmenu(文件(f));filemenu.setmnemonic(keyevent.vk_f);jmenuitem newmenuitem=new jmenuitem(新建);filemenu.add(newmenuitem);jmenuitem openmenuitem=new jmenuitem(打开);openmenu
19、item.setmnemonic(keyevent.vk_o);openmenuitem.addactionlistener(new openactionlistener();filemenu.add(openmenuitem);jmenuitem savemenuitem=new jmenuitem(保存);savemenuitem.setmnemonic(keyevent.vk_s);savemenuitem.addactionlistener(new saveactionlistener();filemenu.add(savemenuitem);jmenuitem saveasmenui
20、tem=new jmenuitem(另存为);saveasmenuitem.setmnemonic(keyevent.vk_a);saveasmenuitem.addactionlistener(new saveactionlistener();filemenu.add(saveasmenuitem);jmenuitem exitmenuitem=new jmenuitem(退出);exitmenuitem.setmnemonic(keyevent.vk_e);exitmenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_e ,a
21、ctionevent.ctrl_mask);exitmenuitem.addactionlistener(new exitactionlistener();filemenu.add(exitmenuitem);mb.add(filemenu);jmenu editmenu=new jmenu(编辑(e));editmenu.setmnemonic(keyevent.vk_e);jmenuitem cutmenuitem=new jmenuitem(剪切);cutmenuitem.setmnemonic(keyevent.vk_t);cutmenuitem.setaccelerator(keys
22、troke.getkeystroke(keyevent.vk_x, actionevent.ctrl_mask);cutmenuitem.addactionlistener(new cutactionlistener();editmenu.add(cutmenuitem);jmenuitem copymenuitem=new jmenuitem(复制);copymenuitem.setmnemonic(keyevent.vk_c);copymenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_c, actionevent.ctrl
23、_mask);copymenuitem.addactionlistener(new copyactionlistener();editmenu.add(copymenuitem);jmenuitem pastemenuitem=new jmenuitem(粘贴);pastemenuitem.setmnemonic(keyevent.vk_p);pastemenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_v, actionevent.ctrl_mask);pastemenuitem.addactionlistener(new p
24、asteactionlistener();editmenu.add(pastemenuitem);jmenuitem sallmenuitem=new jmenuitem(全选);sallmenuitem.setmnemonic(keyevent.vk_a);sallmenuitem.setaccelerator(keystroke.getkeystroke(keyevent.vk_a, actionevent.ctrl_mask);sallmenuitem.addactionlistener(new sallactionlistener();editmenu.add(sallmenuitem
25、);jmenuitem searchmenuitem=new jmenuitem(查找);searchmenuitem.setmnemonic(keyevent.vk_s);searchmenuitem.addactionlistener(new searchactionlistener();editmenu.add(searchmenuitem);jmenuitem chanmenuitem=new jmenuitem(替换);chanmenuitem.setmnemonic(keyevent.vk_g);chanmenuitem.addactionlistener(new chanacti
26、onlistener();editmenu.add(chanmenuitem);mb.add(editmenu);jmenu helpmenu=new jmenu(帮助(h));helpmenu.setmnemonic(keyevent.vk_h);jmenuitem abouthmenuitem=new jmenuitem(关于记事本);abouthmenuitem.setmnemonic(keyevent.vk_a);abouthmenuitem.addactionlistener(new abouthactionlistener();helpmenu.add(abouthmenuitem
27、);mb.add(helpmenu); class myfinddialog extends jdialog implements actionlistener private label l1 = new label(查找字符串); private label l2 = new label(替换字符串); private textfield tf1 = new textfield(10); private textfield tf2 = new textfield(10); private button b1 = new button(向下查找); private button b2 = n
28、ew button(替换); public myfinddialog(frame owner, jtextarea jta) super(owner, 查找, false); setlayout(null); l1.setbounds(10, 30, 80, 20); l2.setbounds(10, 70, 80, 20); tf1.setbounds(90, 30, 90, 20); tf2.setbounds(90, 70, 80, 20); b1.setbounds(190, 30, 80, 20); b2.setbounds(190, 70, 80, 20); add(l1); ad
29、d(l2); add(tf1); add(tf2); add(b1); add(b2); setresizable(false); b1.addactionlistener(this); b2.addactionlistener(this); public void showfind() settitle(查找); setsize(280, 300); setvisible(true); public void showreplace() settitle(查找替换); setsize(280,300); setvisible(true); private void find() string
30、 content = jta.gettext(); string str = tf1.gettext(); int pp=jta.getcaretposition(); int end=content.length(); string text=content.substring(pp,end); if(str!=null&!str.equals() int start=text.indexof(str); if(start=0) start=start+pp; jta.setselectionstart(start); jta.setselectionend(start+str.length
31、(); else javax.swing.joptionpane.showmessagedialog(this,成功完成向下查找!,查找完毕,joptionpane.ok_option | joptionpane.information_message); private void replace() string str2 = tf2.gettext(); find(); jta.replacerange(str2, jta.getselectionstart(),jta.getselectionend(); public void actionperformed(actionevent e
32、) if (e.getsource() = b1) find(); else if (e.getsource() = b2) replace(); class saveactionlistener implements actionlistenerpublic void actionperformed(actionevent e) if(file!=null) fc.setselectedfile(file); int returnval=fc.showsavedialog(notebook.this); if(returnval=jfilechooser.approve_option) fi
33、le=fc.getselectedfile(); saving(); void saving() try filewriter writef=new filewriter(file); writef.write(jta.gettext(); writef.close(); catch(exception e)e.printstacktrace(); class openactionlistener implements actionlistenerpublic void actionperformed(actionevent e) if(file !=null)fc.setselectedfi
34、le(file); int returnval=fc.showopendialog(notebook.this); if(returnval=jfilechooser.approve_option) file=fc.getselectedfile(); unfold(); void unfold() try filereader readf=new filereader(file); int len=(int)file.length(); char buffer=new charlen; readf.read(buffer,0,len); readf.close(); jta.settext(
35、new string(buffer); catch(exception e)e.printstacktrace(); class exitactionlistener implements actionlistenerpublic void actionperformed(actionevent e) setvisible(false); dispose(); system.exit(0);class cutactionlistener implements actionlistenerpublic void actionperformed(actionevent e) jta.cut();class copyactionlistener implements actionlistenerpublic void actionperformed(actionevent e) jta.copy();class pasteactionlistener implements actionlistenerpublic void actionperformed(actionevent e) jta.paste();class sallactionlistener implements actionlistenerpublic void a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电器具生产过程中的能源管理考核试卷
- 稀土金属冶炼与冶炼设备出口策略考核试卷
- 设备噪声控制与振动分析考核试卷
- 如何设计整个系统架构
- 环保职业卫生课件
- 企业资产管理软件操作教程课件
- 医院病案管理模板
- 2019-2025年标准员之专业管理实务提升训练试卷B卷附答案
- 2025年特种装备电缆合作协议书
- 2025年年快手短视频合作协议书
- 个人阅兵申请书
- 颈椎病课件完整版
- 2025年国家药监局医疗器械技术审评检查大湾区分中心事业编制人员招聘5人历年高频重点提升(共500题)附带答案详解
- 巡逻盘查培训课件
- GB/T 39733-2024再生钢铁原料
- 《工业机器人现场编程》课件-任务3.涂胶机器人工作站
- 程序设计高级应用(Java程序设计)知到智慧树章节测试课后答案2024年秋山东劳动职业技术学院
- 2025年教师资格考试高级中学学科知识与教学能力物理试题与参考答案
- 安徽工业大学《工程经济与项目管理》2022-2023学年第一学期期末试卷
- 西华师范大学《景观生态学》2022-2023学年第一学期期末试卷
- 肠瘘 课件教学课件
评论
0/150
提交评论