《课程设计报告--记事本程序.docx》由会员分享,可在线阅读,更多相关《课程设计报告--记事本程序.docx(16页珍藏版)》请在优知文库上搜索。
1、目录第1章课题概述1.1 课题的目的记事本是我们日常生活中常用的程序,在电脑系统中有一个记事本会对我们的生活有很大的帮助。借用计算机,我们可以更为方便地存储和整理记事本。学会编写记事本程序,能够设计出独一无二的记事本,更加便于我们日常生活中的使用。1.2 课题的要求1.2.1 输入输出的要求(1)程序运行时,首先应输出一个主要的图形界面,包括菜单栏以及书写面板。菜单栏中包括一些项目用来实现不同的功能。(2)程序应该能够接受从键盘传输的信息,以在文字输入面板区域输入并显不字符内容。(3)程序能够接收从鼠标输入的信息,以通过鼠标的选择决定所要运行的功能。(4)通过选择菜单中的某些项目能够输出另一个
2、图形界面,以实现一些功能。1.2.2 程序实现的功能要求(1)新建功能:通过鼠标选择新建功能,新建一个空的记事本,其地址和内容为空。(2)打开功能:通过鼠标选择打开功能,实现对已保存的文件的打开,并显示于文字输入面板区域,以进行查看和编辑操作。(3)保存功能:通过鼠标选择保存功能,实现对以编辑完毕的文字进行保存,并且对保存的内容格式进行调试,以保证最佳保存效果。(4)另存为功能:通过鼠标选择另存为功能,通过对已有保存地址的文件进行再一次的选择路径地址、命名以及保存。(5)退出功能:通过鼠标选择退出功能,实现记事本程序的退出。(6)复制功能:通过鼠标选择复制功能,实现对文字面板区域中以选中文字的
3、复制,将其内容放置于系统剪切板中。(7)粘贴功能:通过鼠标选择粘贴功能,实现对系统剪贴板中放置的对象的粘贴,并将以选中的文字内容覆盖。(8)查找和替换功能:通过鼠标选择查找和替换功能,实现对文字面板区域中特定字符的查找以及替换。第2章概要设计2.1记事本程序的模块分类整个程序按功能可以划分为2个大类、8个小类。2个大类分别为“文件”和“编辑”。8个小类分别为“新建”、“打开”、“保存”、“另存为”、“退出”、“复制”、“粘贴”、“查找和替换”。其中,“新建”、“打开”、“保存”、“另存为”、“退出”是属于“文件”这一大类,“复制”、“粘贴”、“查找和替换”是属于“编辑”这一大类。程序的结构框架
4、图如下:图2-1记事本程序框架图2.2输入界面和菜单的选择记事本程序的主要界面是由空白的字符编辑区域和菜单栏组成,字符编辑区域应该铺满除菜单栏以外的全部界面,并且应具有滚动条功能以实现超出界面显示范围的字符显示。程序的菜单栏处于界面的最上方,使用Java中提供的菜单栏。2. 3对于粘贴放置于系统剪切板中内容的合法性检测由于记事本程序中所编辑的内容是字符串,而系统剪切板中所存放的内容并不一定能够转化为字符串,所以在执行粘贴操作之前必须对系统剪切板中的内容进行合法性检测。2.4程序中各个功能单元的概念描述2. 4.1新建功能将正在进行编辑的文字清空,恢复完全空白的字符编辑区域,同时初始化地址,在保
5、存时会进行地址的选择。3. 4.2打开功能将以字符流方式存储的文件中的内容提取出来,放入字符编辑区域之后可以进行编辑。4. 4.3保存功能将已编辑完毕的文字内容以字符流方式进行保存,在保存之前需要判断文件是否已有地址:如果有,则在原地址进行覆盖保存;如果没有地址,则进行地址的选择和文件命名。5. 4.4另存为功能在保存时不进行是否已有地址的判断,直接进行地址的选择和文件命名。6. 4.5复制功能将己选中的文字内容提取出来,转化为可放入系统剪切板的对象,之后放入系统剪切板。7. 4.6粘贴功能将己选中的文字删除;将系统剪切板中的内容提取出来,转化为字符串后插入到选中文字被删除的点。在转换成字符串
6、之前需要对系统剪切板中提取出的内容进行合法性检测,确保其能够转化为字符串。2. 4.7查找和替换功能创建一个新的对话框,其中有2个文字输入区域,分别可以输入所需要查找的内容,以及所要替换的内容。在输入所要查找的内容后,通过鼠标单击“查找”按钮,可以在正在编辑的文字中查找到所需要的文字。通过单击“下一个”按钮,可以查找到下一个所需要的文字。通过单击“替换”按钮,将查找到的文字替换为所需要替换的内容。第3章程序功能的实现3.1主界面的实现主界面的实现需要继承JErame进行实现,具体代码如下:JMenultemitml=newJMenUlten1(新建”);JMenultemitm02=newJM
7、enuItem(打开);JMenultemJMenultemitmO3=newJMemlIIem(保存);itm04=newJMenUlteIn(另存为);JMenultemitm05=newJMenUlten1(退出”)JMenultemJMenultemitmll=newJMenuItem(复制)itml2-newJMenUItein(粘贴)JMenultemitml3=newJMenUlIen1(查找和替换”);publicstaticJTextAreaWenZi=newJTextAreaO;this.SelTille(无标题-记事本”);this.setVisible(true);th
8、is,seticonimage(Toolkit,getDefa1tToo1kitO.CreateImage(z,JSB.pngz);JScrollPaneGunDong=newJScrolIPaneO;GunDong.getViewport().setView(WenZi);this.add(GunDong);this.setSize(600,500);SetDefaultcioseOperation(JFrame.EX1T_ONCLOSE);JMenuBarmenu=newJMenuBarO;this.SetJMenuBar(menu);JMenuWenJian=newJMern(文件”);
9、JMenuBianJi=newJMenU(编辑);menu.add(WenJian);menu.add(BianJi);WenJian.add(itml);WenJian.add(itm02);WenJian.add(itm03);WenJian.add(itm04);WenJian.add(itm05);BianJi.add(itmll);BianJi.add(itml2);BianJi.add(itml3);这段代码实现了主界面的显示,其中SetTitIe用于设置标题;SetVisible用于显示界面,seticonimage用于设置记事本程序界面左上角的图标;JScrollPane用于添
10、加滚动条;JTeXtArea用于创建文本编辑区域;SetDefaultcioseOperation(JFrame.EXlT_0N_CL0SE)用于程序的关闭;setSize用于设置窗口的初始大小;JMenUBa用于创建菜单栏,其中包括两个JMenU菜单对应“文件”、“编辑”,以及8个JMenUItem菜单项对应“新建”、“打开”、“保存”、“另存为”、“退出”、“复制”、“粘贴”、“查找和替换”。由于程序的需要,“查找和替换”项目需要另外一个独立的显示界面,同样继承JFrame进行实现,具体代码如下:JTextFieldsearch_JT=newJTextFieldO;JTextFieldre
11、place_JT=newJTextFieldO;JButtonsearchB=newJBUItOr(“查找”);JButtonreplace_B=newJBUtton(替换”);JButtonnext_B=newJButton(下一个”);SetLayout(null);search_JT.setBounds(30,24,100,30);search_JT.setText(null);search.B.setBounds(145,24,30,30);search.B.SetBorder(null);replace_JT.setBounds(30,104,100,30);replace_JT.s
12、etText(null);replaceB.setBounds(145,104,30,30);replaceB.SetBorder(null);next_B.setBounds(140,64,40,30);next_B.SetBorder(null);this,add(search_JT);this,add(replace.JT);this.add(searchB);this,add(replaceB);this,add(next_B);this.SeITitle(“查找和替换);this.SetVisible(true);this.setBounds(200,50,230,200);这段代码
13、中,JTeXtField用于创建2个文本输入框,对应查找和替换的内容输入;JBUtton用于创建3个按钮,分别对应“查找”、“替换”、“下一个”;setBounds用于设置每一个按钮以及文本框的位置。3. 2主要功能模块的实现8. 2.1对于菜单项以及按钮的事件监听通过ActionListener接口实现对于菜单项以及按钮的事件监听,将用户的操作与程序的运行相关联起来,具体代码如下:itml.addActionListener(this);itm02.addActionListener(this);itm03.addActionListener(this);itm04.addActionLis
14、tener(this);itm05.addActionListener(this);itmll.addActionListener(this);itml2.addActionListener(this);itml3.addActionListener(this);search_B.addActionListener(this);replaccB.addActionListener(this);nextB.addActionListener(this);以上代码将程序中的每一个菜单项以及按钮进行监听,之后可以在actionPerformed(ActionEvente)方法中进行处理,当使用者进行
15、操作时,可以根据不同的选择运行不同的功能。3.2.2新建功能的实现将文本区的内容清空,并将地址和标签初始化,具体代码如下:FileSelectFile;this.setTitIe(无标题-记事本”);WenZi.SetTeXt();SelectFile=null;3.2.3打开功能的实现使用javaswing中提供的文件选择对话框,达到选中指定文件的目的。使用FileReader读取文件,之后再使用BufferedReader创建缓存读取方式优化读取,按行读取并显示与文本区。最后设置标题与所打开的文件名对应。具体代码如下:JFileChooserSELECT=newJFileChooserO;SELECT.ShowOpenDialog(this);SelectFile=SELECT.getSelectedEile();try(FileReaderread=newFileReader(SelectFi