【课程设计】基于于JAVA的记事本编辑器的设计与实现(下载后送源代码).doc_第1页
【课程设计】基于于JAVA的记事本编辑器的设计与实现(下载后送源代码).doc_第2页
【课程设计】基于于JAVA的记事本编辑器的设计与实现(下载后送源代码).doc_第3页
【课程设计】基于于JAVA的记事本编辑器的设计与实现(下载后送源代码).doc_第4页
【课程设计】基于于JAVA的记事本编辑器的设计与实现(下载后送源代码).doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称: 文本编辑器的设计与实现 姓 名: 学 号: 专业班级: d软件081 系 (院): 计算机工程学院 设计时间: 2010.6.142010.6.27 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日面向对象课程设计报告 第 28 页,共 28 页更多计算机类课程设计、毕业设计、论文请访问:/mydoc-5887523-1.html&folderid=729861课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。2课程设计任务与要求:2.1文本编辑器的设计与实现 设计一个类似于windows记事本(notepad)的java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。2.2设计要求:课程设计可选用eclipse、jbuilder、netbeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。认真完成需求分析,建议采用uml建模技术进行系统的分析设计,在画出系统用例图和类图,并将uml图复制到设计报告中。认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、设计说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。通过这次设计,要求掌握以下内容:1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2) 类、包、接口的定义与使用3) 常用工具类与算法的实现(数组、向量、字符串、链表)4) java.awt、javax.swing中常用标准gui组件及相应的事件处理5) java的异常处理机制6) java的数据库连接技术7) java的多线程技术与动画制作8) java的网络编程3课程设计说明书1、需求分析简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能2、概要设计(一)其基本功能包括:1)基本的文本操作功能。包括新建,保存,打开,保存。2)基本的编辑功能。包括复制,剪贴,粘贴。3)基本的格式功能,背景。4)简单的帮助,关于主题。(二)主要的组件包括:1) 基本的frame框架;2) 菜单;3) 打开文件对话框;4) 保存文件对话框;5) 颜色对话框;6) choice下拉列表,运来实现字体设置;7) 简单的帮助框架。(三)设计示意图建立基本框架添加编辑区添加菜单添加对话框完善菜单系统建立下拉列表编辑文字建立框架实现简单帮助3、详细设计1) 文件打开与保存对话框filedialog_save=new filedialog(this,保存文件对话框,filedialog.save);filedialog_save.setvisible(false);filedialog_load=new filedialog(this,保存文件对话框,filedialog.load);filedialog_load.setvisible(false);filedialog_save.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_save.setvisible(false););filedialog_load.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_load.setvisible(false); );public void actionperformed(actionevent e)if(e.getsource()=itemsave)filedialog_save.setvisible(true);if(filedialog_save.getfile()!=null)try file file=new file(filedialog_save.getdirectory(), filedialog_save.getfile(); tofile=new filewriter(file); out=new bufferedwriter(tofile); out.write(area.gettext(),0,(area.gettext().length(); out.close(); tofile.close();catch(ioexception e1) else if(e.getsource()=itemload)filedialog_load.setvisible(true);area.settext(null);string s;if(filedialog_load.getfile()!=null)tryfile file=new file(filedialog_load.getdirectory(), filedialog_load.getfile(); file_reader=new filereader(file); in=new bufferedreader(file_reader); while(s=in.readline()!=null) area.append(s+n); in.close(); file_reader.close();catch(ioexception e1) 文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。先建立打开和保存对话框,在public void actionperformed(actionevent e)里分别用filewriter()和filereader()方法实现保存和打开。2) 调用颜色对话框else if(e.getsource()=item5) color newcolor=jcolorchooser.showdialog(this,调色板,area.getbackground(); if(newcolor!=null) area.setbackground(newcolor); 文本编辑器要实现背景功能可以用javax.swing包中的jcolorchooser类的静态方法。pubic static color showdialog(component,string title,color initialcolor),其中参数component指定对话框所依赖的组件,即文本编辑器中的文本区area,title指定对话框的标题“调色板”,initialcolor指定对话框返回的初始颜色,即对话框消失后,返回默认值。3) 建立choice下拉列表实现对字体的设置choice list;graphicsenvironment ge=graphicsenvironment.getlocalgraphicsenvironment(); string fontname=ge.getavailablefontfamilynames();public void itemstatechanged(itemevent e)string name=list.getselecteditem();font f=new font(name,font.plain,15);area.setfont(f);文本编辑器要实现对字体的设置,我选用了graphicsenvironment对象调用string getavailablefontfamilynames()方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。4)字形,字体大小部分else if(e.getsource()=item8) /设置字形(常规,倾斜,加粗)font font=area.getfont(); int style=font.getstyle();style=style0; area.setfont(new font(,style,font.getsize();else if(e.getsource()=item9)font font=area.getfont(); int style=font.getstyle();style=style2; area.setfont(new font(,style,font.getsize();else if(e.getsource()=item10)font font=area.getfont();int style=font.getstyle();style=style1; area.setfont(new font(,style,font.getsize();else if(e.getsource()=item11) /设置字体大小font font=area.getfont();int style=font.getstyle();area.setfont(new font(font.getname(),style,12);else if(e.getsource()=item12)font font=area.getfont();int style=font.getstyle(); area.setfont(new font(font.getname(),style,24);else if(e.getsource()=item13)font font=area.getfont();int style=font.getstyle(); area.setfont(new font(font.getname(),style,36);5)剪切,复制,粘贴部分public void changedupdate(documentevent e) string s=area.gettext();public void removeupdate(documentevent e)changedupdate(e);public void insertupdate(documentevent e)changedupdate(e);public void actionperformed(actionevent e) else if(e.getsource()=item2) area.cut();else if(e.getsource()=item3)area.copy();else if(e.getsource()=item4)area.paste(); 文本编辑器中关于剪切,复制,粘贴功能的实现我选用处理jtextarea的documentevent事件,通过area.cut(),area.copy(),area.paste()方法,点击“编辑”中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。6) 帮助中关于主题部分else if(e.getsource()=item6)zhuti zt=new zhuti();class zhuti extends frame implements actionlistenerbutton btn;label lab;zhuti()setlayout(null);btn=new button(确定); lab=new label(这是一个简单的文本编辑器!);add(btn);add(lab);btn.addactionlistener(this);setbounds(200,200,250,150);setvisible(true);lab.setbounds(20 ,60,220,30);lab.setfont(new font(楷体,font.bold,16);lab.setbackground(color.cyan);btn.setbounds(100,100,50,30);btn.setbackground(color.cyan);public void actionperformed(actionevent e)if(e.getsource()=btn)dispose(); 对于帮助中关于主题部分的实现,我另构建了一个frame框架,主要是由一个标签及一个按钮构成,由标签输出“这是一个简单的文本编辑器!”,按钮用dispose()方法实现退出功能。7)类图 4课程设计成果4、调试分析(1)关于打开和保存我运用了文件对话框, filedialog_save和filedialog_load以及文件输入输出流来实现,新建功能我选用了area.settext(null)方法.(2)对于剪贴,粘贴,复制的实现则用public void removeupdate(documentevent e)及 public void insertupdate(documentevent e).(3)背景的运用也是调用了颜色对话框,需引用import javax.swing.jcolorchooser包用 color newcolor=jcolorchooser.showdialog(this,调色板,area.getbackground()方法;(4)至于字体功能的实现,则是先创建一个下拉列表choice list,再实现对它的监听 list.additemlistener(this), 最后用public void itemstatechanged(itemevent e)方法实现,需注意的是这种方法的实现只对javax.swing包中的组件有效,对于java.awt包中的组件,系统则是采取默认的字体名称.5、用户使用说明软硬件要求:软件方面:java开发环境硬件方面:jdk软件抑或是eclipse软件对硬件不是有很高的要求。6、测试结果图1:文本编辑器的运行结果:图2文本编辑器中的菜单:图3:字体选择下拉列表图4:文本编辑器文件对话框(保存文件对话框):图5:选择背景颜色对话框:图6:简单的帮助对话框:附录(程序代码)import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.jcolorchooser;import javax.swing.*;import javax.swing.event.*;class window extends frame implements actionlistener,itemlistener,documentlistenerfiledialog filedialog_save,filedialog_load;menubar menubar;menu menu1,menu2,menu3,menu4,menu5,menu6;menuitem itemsave,itemload,item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,item14,item15;choice list;jtextarea area;bufferedreader in;filereader file_reader;bufferedwriter out;filewriter tofile;jscrollpane scrollpane;window(string s) super(s);setsize(600,400);list=new choice();area=new jtextarea();setvisible(true);graphicsenvironment ge=graphicsenvironment.getlocalgraphicsenvironment(); string fontname=ge.getavailablefontfamilynames(); for(int i=0;ifontname.length;i+) list.add(fontnamei);add(list,north);add(area,center);list.additemlistener(this); validate();menubar=new menubar();menu1=new menu(文件);menu2=new menu(编辑);menu3=new menu(格式);menu4=new menu(帮助);menu5=new menu(字形);menu6=new menu(字体大小);itemsave=new menuitem(保存);itemload=new menuitem(打开);item1=new menuitem(新建);item2=new menuitem(剪切);item3=new menuitem(复制);item4=new menuitem(粘贴);item5=new menuitem(背景);item6=new menuitem(关于主题);item7=new menuitem(退出);item8=new menuitem(常规);item9=new menuitem(倾斜);item10=new menuitem(加粗);item11=new menuitem(12);item12=new menuitem(24);item13=new menuitem(36);item14=new menuitem(查找);item15-new menuitem(替换);itemsave.addactionlistener(this);itemload.addactionlistener(this);item1.addactionlistener(this);item2.addactionlistener(this);item3.addactionlistener(this);item4.addactionlistener(this);item5.addactionlistener(this);item6.addactionlistener(this);item7.addactionlistener(this);item8.addactionlistener(this);item9.addactionlistener(this);item10.addactionlistener(this);item11.addactionlistener(this); item12.addactionlistener(this);item13.addactionlistener(this);item14.addactionlistener(this);item15.addactionlistener(this);(area.getdocument().adddocumentlistener(this);menu1.add(item1);menu1.addseparator();menu1.add(itemsave);menu1.addseparator();menu1.add(itemload);menu1.addseparator();menu1.add(item7);menu2.add(item2);menu2.addseparator();menu2.add(item3);menu2.addseparator();menu2.add(item4);menu2.addseparator();menu2.add(item14);menu2.addseparator();menu2.add(item15);menu3.add(item5);menu3.addseparator();menu3.add(menu5);menu3.addseparator();menu3.add(menu6);menu4.add(item6);menu5.add(item8);menu5.addseparator();menu5.add(item9);menu5.addseparator();menu5.add(item10);menu6.add(item11);menu6.addseparator();menu6.add(item12);menu6.addseparator();menu6.add(item13);menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);menubar.add(menu4);setmenubar(menubar);filedialog_save=new filedialog(this,保存文件对话框,filedialog.save);filedialog_save.setvisible(false);filedialog_load=new filedialog(this,保存文件对话框,filedialog.load);filedialog_load.setvisible(false);filedialog_save.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_save.setvisible(false););filedialog_load.addwindowlistener(new windowadapter()public void windowclosing(windowevent e)filedialog_load.setvisible(false); );addwindowlistener(new windowadapter()public void windowclosing(windowevent e)setvisible(false);system.exit(0););public void itemstatechanged(itemevent e)string name=list.getselecteditem();font f=new font(name,font.plain,12);area.setfont(f);public void changedupdate(documentevent e)string s=area.gettext();public void removeupdate(documentevent e)changedupdate(e);public void insertupdate(documentevent e)changedupdate(e);public void actionperformed(actionevent e)if(e.getsource()=itemsave)filedialog_save.setvisible(true);if(filedialog_save.getfile()!=null)try file file=new file(filedialog_save.getdirectory(), filedialog_save.getfile(); tofile=new filewriter(file); out=new bufferedwriter(tofile); out.write(area.gettext(),0,(area.gettext().length(); out.close(); tofile.close();catch(ioexception e1) else if(e.getsource()=itemload)filedialog_load.setvisible(true);area.settext(null);string s;if(filedialog_load.getfile()!=null)tryfile file=new file(filedialog_load.getdirectory(), filedialog_load.getfile(); file_reader=new filereader(file); in=new bufferedreader(file_reader); while(s=in.readline()!=null) area.append(s+n); in.close(); file_reader.close();catch(ioexception e1) else if(e.getsource()=item1) area.settext(null);else if(e.getsource()=item2) area.cut();else if(e.getsource()=item3)area.copy();else if(e.getsource()=item4)area.paste();else if(e.getsource()=item5) color newcolor=jcolorchooser.showdialog(this,调色板,area.getbackground();if(newcolor!=null) area.setbackground(newcolor); else if(e.getsource()=item6) zhuti zt=new zhuti();else if(e.getsource()=item7)system.exit(0);else if(e.getsource()=item8)font font=area.getfont(); int style=font.getstyle();style=style0; area.setfont(new font(,style,font.getsize();else if(e.getsource()=item9)font font=area.getfont(); int style=font.getstyle();style=style2; area.setfont(new font(,style,font.getsize();else if(e.getsource()=item10)font font=area.getfont();int style=font.getstyle();style=style1; area.setfont(new font(,style,font.getsize();else if(e.getsource()=item11)font font=area.getfont();int style=font.getstyle();area.setfont(new font(font.getname(),style,12);else if(e.getsource()=item12)font font=area.getfont();int style=font.getstyle(); area.setfont(new font(font.getname(),style,24);else if(e.getsource()=item13)font font=area.getfont();int style=font.getstyle(); area.setfont(new font(font.getname(),style,36); else if(e.getsource()=item14) chazhao cz=new chazhao(); class zhuti extends frame implements actionlistenerbutton btn;label lab;zhuti()setlayout(null);btn=new button(确定); lab=new label(这是一个简单的文本编辑器!);add(btn);add(lab);btn.addactionlistener(this);setbounds(200,200,250,150);setvisible(true);lab.setbounds(20 ,60,220,30);lab.setfont(new font(楷体,font.bold,16);lab.setbackground(color.cyan);btn.setbounds(100,100,50,30);btn.setbackground(color.cyan);public void actionperformed(actionevent e)if(e.getsource()=btn)dispose();public class myworkpublic static void main(string args)window win=new window(甜甜的文本编辑器);5.课程设计心得本次课程设计我选做的题目是文本编辑器的设计与实现. 要求设计一个类似于windows记事本(notepad)的java程序,可以打开、新建、保存一个文本文件,而且能对选中的文本进行各种编辑操作,如设置字体、背景、复制、粘贴.这次实验中我设计的文本编辑器可以实现打开, 新建,保存,复制,粘贴,剪贴,背景,及帮助主题这些功能.先在window类中添加一系列组件,如button,jtextarea,menu等,再对相应的组件添加监听,然后在各自对应的方法中来实现各自的功能.先设置了四个菜单,分别为文件,编辑,格式和帮助. 将打开, 新建,保存放入文件菜单中, 复制,粘贴,剪贴放入编辑菜单中,背景和关于主题分别在格式和帮助菜单中. 通过这次的课程设计,应该说收益匪浅,因为程序都是自己写的,所以感触更深。以前有一些似懂非懂的知识点通过这次试验有了全面的了解,更重要的是得到了许多新的知识。 而且在这次试验中尝试了许多以前没有用过的方法来实现一些功能,比如对话框的使用等等。有了这次课程设计的体验,相信在以后的编程乃至学习中会从中得到一些经验。参考文献:1 耿祥义,张跃平著.java2实用教程(第三版)m.清华大学出版社,20062 陈家兴,陈风,朱国鸿著.java图形用户界面设计与实例m.冶金工业出版社,20043java2使用教程(第三版)耿祥义 张跃平编著 北京:清华大学出版社,20074 internet上的资源ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论