欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    java课程设计--制作一个简易的记事本.docx

    • 资源ID:900973       资源大小:103.85KB        全文页数:13页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java课程设计--制作一个简易的记事本.docx

    第1章课题概述21.1 课题的目的21.2 课题的要求21.2.1 主界面的要求21.2.2 程序实现的功能要求2第2章概要设计32.1 整个程序的模块结构及流程32.2 主界面的设计3第3章程序功能的实现53.1 主函数的实现53.2 主要功能模块的实现53.2.1保存的实现53.2.2另存为的实现62.4.3打开的实现72.4.4查找的实现72.4.5替换的实现92.4.6字体的实现10第4章调试及发现问题的解决11第5章程序测试及分析12第6章总结14参考文献15第1章课题概述本次JAVA课程设计的题目是制作一个简易的记事本程序(包括保存、另存为、查找、替换等功能)。1.1 课题的目的记事本程序是日常生活中常用的记录文字的程序。人们往往会通过在本子上手写去记录下一些事件,然而文字数量一旦增加,或者随着时间推移纸张的变质,手写便成了一种负担。由于计算机的存储量较大,操作又比较简便,因此,采用特定的方法,通过编写计算机程序的方式来实现输入文字、保存、另存为、打开、查找、替换和字体设置等功能,这无疑是具有较大的实际意义。1.2 课题的要求1.2. 1主界面的要求(1)程序运行后应首先屏幕上显示出一个主界面,左上角标有记事本三字,赋有窗口缩小放大和关闭和文本输入的功能,并将文件、编辑、格式等功能罗列在主菜单上供用户进行选择,以便进行相应的操作。(2)文本文字应能够从键盘输入,并且输入过程中可以不断更新输入文字信息。(3)主界面右侧应有一个滚动条。当鼠标移到主菜单上各选项时,应下拉出相应的子功能。1.2.2程序实现的功能要求(1)文本的输入通过建立一个文本域来进行。(2)选择路径后,输入的文本通过节点流放入缓存中,通过不断写入刷新,以实现保存和另存为的功能。(4)通过事件响应,弹出打开对话框,选择要打开的文档,通过节点流放入一个数组中,读取数组中的内容并且将读取的字符串拼接,以此实现打开功能。(5)确定光标位置,根据选择是否要区分大小写,使用SeleCt方法在整个文档中查找需要的内容。(6)根据选择是否要区分大小写,输入查找内容后和要替换的内容,利用replaceAll方法或replaceFirst方法来实现替换和全部替换功能。(7)创建JDiaIOg对话框,将字体设置的要求放入列表中并添加滚动条,通过点击做出事件回应,调用SetFont方法加以实现字体设置功能。第2章概要设计2.1整个程序的模块结构及流程根据课题要求,整个程序按功能可划分为保存、另存为、打开、查找、替换、字体这六个主要模块。除上述主要功能模块之外,为更好地提供程序的人机交互能力,程序还应提供退出程序的助模块。程序各功能模块的划分,及主要流程如图2-1整个程序各功能模块间的流程2.2主界面的设计由于用户的入需要一个界面来完成,这个界面除了要有窗口缩小、放大和关闭的功能,其本身的大小不随输入的过程而改变,这时,就需要一个图形界面来完成这些功能。首先,通过调用系统的JFranIe来构造一个框架,设置标题,窗口的大小以及使窗口可见,this.SetDefau1tCIoseOperation(JFrame.DISPOSE_ON_CLOSE)这个方法的使用可以在点击窗口右上角的小红叉时关闭窗口,这样就完成了一个简易的图形界面。其次,为了实现记事本的各功能,要创建一个容器。还需在图形界面上添加菜单栏,使用川enuBar方法创建一个水平菜单栏,将其添加进容器并置于容器最北边,利用JMerm方法编辑出“文件”“编辑”和“格式”三部分,分别将其添加进川enuBar中,在利用JMenUItein编辑出“保存”“另存为”“打开”“查找”"替换"和"字体”,分别添加进JMenU中,并且用addSeparator()方法添加分割线。最后,也是最主要的,实现文字输入,通过JTCXtArea方法实现文本域,给这个文本域设置大小,这样就可以文字输入了。还要在文本域里添加一个滚动条,将这个滚动条添加进容器里,滚动条的功能得以实现。由此,整个主界面的设计得以完成。如图2-2所示。图2-2主界面设计第3章程序功能的实现3.1主函数的实现程序运行,从主方法入手,调用NOteBook的方法,继而进入主类执行程序,显示一个图形界面,屏幕上会显示出记事本界面。然后根据用户选择的菜单项,调用相应的功能模块,功能模块调用过程中或调用结束后,输出程序功能的执行结果。publicstaticvoidmain(Stringargs)newNoteBook();)3.2主要功能模块的实现3.2.1保存的实现保存功能模块首先需要得到输入的文本信息,实现对于“保存”事件的监听。利用一个if循环,如果路径为空,调用一个JDialog方法,构造一个保存对话框,选择文件和路径后,将其放入一个节点流中,将此节点流放入缓存中,不断写入,不断刷新,直至结束,关闭此流。如果路径不为空,直接在节点流中写入新信息,不断刷新,直至结束,关闭此流。保存功能的代码实现如下:publicvoidactiOnPerformcd(ActionEvente)(Strings2=jta.getText();得到文本信息if(e.getSource()=jmil)Stringfilepath=null;if(filepath=null)JFramejf=newJFramC();fd.setVisible(true);创建保存对话框FileDialogfd=newFilcDialog(jf,“保存",FileDialog.SAVE);StringfilePath=fd.getDirectory();StringfiIeName=fd.getFile();filepath=filePath+fiIeName;得到文件的绝对路径tryFileWriterfos=newFileWriter(filepath+”.txt");BuffercdWriterbw=newBuffercdWriter(fos);放入缓存中charch=s2.toCharArray();for(inti=0;i<ch.length-1;i+)if(chi=>n,)(bw.newLine();continue;)bw.write(chi);写入信息)bw.flush();bw.close();catch(FileNotFoundExceptionel)(el.PrintStackTrace();)catch(IOExccptionel)el.PrintStackTrace();)3.2.2另存为的实现另存为功能模块和保存功能模块十分相似,与保存功能相比,另存为少了if循环的判断,直接调用一个JDialOg方法,构造一个保存对话框,选择文件和路径后,将其放入一个节点流中,将此节点流放入缓存中,不断写入,不断刷新,直至结束,关闭此流。另存为功能的代码实现如下:publicvoidactionPerformed(ActionEvente)(Strings2=jta.getText();得到文本信息if(e.getSource()=jmi2)(JFramejf2=newJFrame();fd.setVisible(true);创建另存为对话框FileDialogfd=newFiIeDialog(jf2,”另存为,FileDialog.SAVE);StringfilePath=fd.getDirectory();StringfiIeName=fd.getFile();try(FileWriterfos=newFileWriter(filePath+fiIeName+”.txt");BufferedWriterbw=newBuffercdWriter(fos);放入缓存中charch=s2.toCharArray();for(inti=0;i<ch.length-1;i+)if(chi='n')bw.newLine();continue;)bw.write(chi);写入信息)bw.flush();bw.close();catch(FileNotFoundExceptionel)el.PrintStackTrace();catch(IOExccptionel)el.PrintStackTrace();)2.4.3打开的实现打开功能模块的实现首先需要实现对于“打开”事件的监听。调用一个JDialOg方法,构造一个打开对话框,选择文件和路径后,将其放入一个节点流中,将此节点流里的内容放入一个长度为1024的数组中,并且定义一个空字符串,读取数组中的内容,通过While循环执行,只要没有读到最后的内容,就不断拼接读到的字符串,最后将此字符串通过SetTeXt()方法在文本域中显示。打开功能的代码实现如下:publicvoidactionPerformed(ActionEvente)Strings2=jta.getText();得到文本域的内容if(e.getSource()=jmi3)JFramejfl=newJFrame();fd.setVisible(true);创建打开对话框FileDialogfd=newFileDialog(jf1,打开“,FileDialog.LOAD);StringfiIePath=fd.getDirectory();StringfiIeName=fd.getFile();tryFileInputStreamfis=newFileInputStream(fiIePath+fiIeName);byteb=newbyte1024;Stringsi="”;while(true)inttemp=fis.read(b);读取节点流里的内容放入数组if(temp=-1)break;si+=newString(b,0,temp);拼接读取的字符串jta.setText(si);文本域中显示内容catch(FileNotFoundExceptionel)el.PrintStackTrace();catch(IOExceptionel)el.PrintStackTrace();2.4.4查找的实现查找功能模块的实现首先需要实现对于“查找”事件的监听,并且对调用一个自己构造的FindReplaceDialog方法。关于此方法的实现先要调用一个JDiaIog方法,构造一个查找和替换对话框,通过getCaretPosition()方法确定光标的位置并且通过getText()方法获得要查找的内容,通过if循环判断,如果区分大小写被选择,再进行内部的if循环,如果从光标位置开始到最后出现了要查找的内容,选中要查找的内容,否则就显示一个找不到“”(查找的内容)的对话框。如果区分大小写没有被选择,那么只需在此前的内部if循环执行前添加一个toLowerCase()方法,把要查找的内容和整个文本的内容都变成小写,其余步骤和之前一样就能实现了。查找功能的代码实现如下:publicvoidactiOnPerformed(ActionEvente)Strings2=jta.getText();获取文本域内容if(e.getSource()=jmi4)newFinClRePlaCeDialog(this);调用构造方法classFindReplaceDialogextendsJDialogimplementsActionListenerpublicvoidactionPerformed(ActionEventarg)intIoc=jta.getCaretPosition();获取光标位置Stringsc=findEditl.getText();获取查找的内容if(checkBox.isSelected()选择区分大小写Strings=jta.getText();Stringsi=s.Substring(Ioc);if(si.IastInclexOf(sc)!=-1)找查找内容jta.select(si.indexf(sc)+loc,si.IndexOf(sc)+Ioc+sc.length();elseJOptionPane.ShowMessageDialog(null,找不到"+findEditl.getText()+“);else不区分大小写Strings=jta.getText();s二s.toLowerCase();转为小写sc=sc.toLowerCase();Stringsi=s,Substring(Ioc);if(si.IastInclexOf(sc)!=-1)jta.select(si.indexf(sc)+loc,si.indexf(sc)+Ioc+sc.IengthO);elseJOptionPane.ShowMessageDialog(null,"找不到”+findEditl.getText()+"""););2.4.5替换的实现替换功能模块的实现首先需要实现对于“替换”事件的监听,并且对调用一个自己构造的FindReplaceDialog方法。关于此方法的实现先要调用一个JDiaIog方法,构造一个查找和替换对话框。替换有分为替换和全部替换,全部替换需要通过一个if循环判断,如果文本域中包含要查找的内容,调用一个replaceAll()方法将内容替换并且在文本域中显示,并且显示替换成功对话框,否则显示替换字符不存在的对话框。替换需要通过一个while循环实现,内部if循环判断,如果文本域中不包含要查找的内容,显示找不到相关内容的对话框,否则调用replaceFirst()方法替换查找内容,根据While循环的条件不断改变是否执行循环。替换功能的代码实现如下:publicvoidactionPerformed(ActionEvente)Strings2=jta.getText();获得文本域内容if(e.getSource()=jmi5)newFindReplaceDialog(this);调用构造方法publicvoidactionPerformed(ActionEvente)if(e.getSource()=0KBtn3)if(jta.getText().contains(findEditl.getText()jta.setText(jta.getText().replaceAll(findEditl.getText(),findEdit2.getText();替换全部JOptionPane.ShowMessageDialog(this,替换成功!”);elseJOptionPane.ShowMessageDialog(this,替换字符不存在!);elseif(e.getSource()=CancelBtn)JOptionPane.ShowMessageDialog(this,确认取消!);dispose();elseif(e.getSource()=0KBtn2)booleanflag=true;while(flag)if(!(jta.getText().contains(findEditl.getText()JOptionPane.ShowMessageDialog(this,找不到'+findEditl.getText()+,相关的的内容!);jta.setText(jta.getText().replaceFirst(findEditl.getText(),findEdit2.getText();/替换flag=false;2.4.6字体的实现字体功能模块的实现首先需要实现对于“字体”事件的监听,并且调用一个自己构造的SetFontDialOg()方法,关于此方法的调用要先调用一个JDiaIOg方法,创建一个字体设置的界面,把字体、字形和大小分别放入数组中,直接调用数组使用即可。字体功能的代码实现如下:publicvoidactionPerformed(ActionEvente)if(e.getSource()=jmi6)newSetFontDialog(this);)classSetFontDialogextendsJDialogimplementsListSelectionListener,ActionListener,ItemListenerStringjl=宋体,黑体,华文行楷,隶书,华文隶书;Stringj2口=常规,粗体,斜体;Stringj3=8,12,14,16,18,20,22,24,26,30,32,34,36,40,42;publicvoidactionPerformed(ActionEvente)if(e.getSource()=jbl)jta.setFont(newFont(font,fontMessage,SiZe);调用方法dispose();elseif(e.getSource()=jb2)dispose();)publicvoidValueChanged(ListSelectionEvente)if(e.getSource()=jlistl)调用数组for(inti=0;i<jl.length;i+)if(jlistl.getSelectedValue().equals(jli)font=jli;if(e.getSource()=jlist2)for(inti=0;i<j2.length;i+)if(jlist2.getSelectedValue().equals(j2i)fontMessage=i;if(e.getSource()=jlist3)for(inti=0;i<j3.length;i+)if(jlist3.getSelectedValue().equals(j3i)size=Integer,parselnt(j3i);)第4章调试及发现问题的解决虽然在程序的编写过程中遇到了很多问题,但是通过上网查阅相关资料,与其它同学讨论,询问指导老师等方式,最终都一一解决了,程序实现及调试过程中遇到的主要问题及解决方法如下。1、在记事本中插入分行保存后在WindoWS系统中打开如何显示分行?解决方法:在保存和另存为功能中进行修改,把文本信息放进字符数组中,在这个数组中查找'nL一旦查找到就插入一个分行,最后在吧所有内容写进缓存中。2、怎么实现查找功能并且使每一项都显示出来?解决方法:一定要先知道光标的位置,才可以由此进行查找。通过getCaretPosition()方法确定光标的位置并且通过getText()方法获得要查找的内容,通过if循环判断,如果区分大小写被选择,再进行内部的if循环,如果从光标位置开始到最后出现了要查找的内容,选中要查找的内容,否则就显示一个找不到“”(查找的内容)的对话框。如果区分大小写没有被选择,那么只需在此前的内部if循环执行前添加一个toLowerCase()方法,把要查找的内容和整个文本的内容都变成小写,其余步骤和之前一样就能实现了。3、字体功能实现时怎么实现选择好想要的字形、字体和大小就改变(不用JTextField实现)解决方法:分别把字体、字形和大小的选择项放入三个数组中,利用确定按钮的监听来实现改变字体,当确定按钮被点击时,调用SetFont()方法,用ValueChanged来实施监听器的回应,利用一个for循环,在数组中找下标,再用一个if循环,如果得到的数组下标和之前数组的下标相等,那么就调用这个方法。由此,字体功能实现。第5章程序测试及分析运行程序,首先显示程序主界面,列出的功能选项有保存、另存为、打开、查找、替换、字体等。保存功能模块首先需要得到输入的文本信息,实现对于“保存”事件的监听。第一次的保存功能相当于另存为功能,而第二次保存开始,因为已经有了路径,所以直接将文本信息写入缓存中即可。保存功能对话框如图5-1所示。图5-1保存对话框另存为功能模块和保存功能模块十分相似,与保存功能相比,另存为少了if循环对路径的判断,在选择好文件的绝对路径后,直接写入缓存中即可。另存为功能如图5-2所示。图5-2另存为对话框打开功能模块的实现首先需要实现对于“打开”事件的监听。选择文件和路径后,将内容放入数组中,读取数组中的内容,通过WhiIe循环执行,只要没有读到最后的内容,就不断拼接读到的字符串,最后将此字符串通过SetTeXtO方法在文本域中显示。打开功能对话框如图5-3所示。图5-3打开对话框查找和替换功能模块的实现首先需要实现对于“查找和替换”事件的监听。查找和替换功能对话框如图5-4所示。图5-4查找和替换对话框字体功能模块的实现首先需要实现对于“字体”事件的监听,把字体、字形和大小分别放入数组中,直接调用数组使用即可。字体功能对话框如图5-5所示。图5-5字体对话框第6章总结通过一周的课程设计,我独立完成了简易的记事本程序,写出了将近五百行代码的程序。更重要的是通过这次实践,加深了我对JaVa编程相关知识的理解。总结起来,主要有以下几点体会:1、程序设计语言的基础一定要扎实。编写程序的过程中,我遇到了很多的问题,有一些可以考翻书和上网查询来解决,可是有一些却不能。直至问了一些基础好的同学才明白。这就令我起了反思,基础好的同学,因为听课认真,课后多下苦工,所以有着很好的编程基础,当他们遇到问题时,就可以靠着扎实的基础解决问题,所以,我也一定要培养好扎实的基础,不但要认真听讲,还需多看些课外书来增强JaVa编程的基础。2、编程不能操之过急,也不能一味依附他人。程序的编写过程,不能一蹴而就,它应该是一个循环渐进,不断完善直至完美的过程。编写程序,特别是编写功能庞大,且逻辑结构较为复杂的程序,不要妄想一口气将所有的功能都非常完美地实现。不能为了完成任务而去编程,编程靠的是自己,遇到问题不能退缩,只想着去问别人或者靠别人帮你解决问题,这样,不但自己没有成就感,不会的地方还是不会,下次遇到类似的问题还是不会去解决,所以说编程中遇到困难,一定要自己想办法去解决,去弄懂,只有这样,才能进步。3、耐心地去调试程序;测试程序时,应重点关注边界条件和特殊细节。绝大多数程序不是只要编写完就能运行,所以当程序编写完一定要进行细地测试。如果发现测试结果不对或不够完美,则需要沉下心来,仔细检查程序中的每一个环节和漏洞。细节决定成败,不主动边界条件或者是特殊细节,可能导致整个程序运行时出错,千里之堤溃于蚁穴。4、养成良好的学习态度和学习习惯,培养正确的学习方法。编写复杂的计算机程序必须学会独立思考,不懂的地方可以上网或到图书馆查阅资料,可以去询问同学,遇到实在无法理解或解决的问题时,要主动向老师请教。这次数据结构课程设计,使我在课题分析、主界面的实现、相关方法的设计,以及编程实践等多方面都得到了锻炼。主要是依靠自身的努力,顺利地完成了本次课程设计任务。感谢在此过程中帮助过我的指导老师和各位同学!参考文献1袁海燕王文涛.JAVA实用程序设计100例.北京:人民邮电出版社,2005.52黄明梁旭周绍斌.Java课程设计.北京:电子工业出版社,2006.63张晨付冰赵军.Java2应用编程150例.北京:电子工业出版社,2003.9

    注意事项

    本文(java课程设计--制作一个简易的记事本.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开