版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机工程学院课程设计报告设计名称: 面向对象课程设计 选题名称: 文本编辑器的设计与实现 姓 名: 学 号: 专业班级: d软件081 系 (院): 计算机工程学院 设计时间: 2010.6.142010.6.27 设计地点: 软件实验室、教室 成绩:指导教师评语: 签名: 年 月 日1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用
2、能力。2课程设计任务与要求:2.1文本编辑器的设计与实现 设计一个类似于windows记事本(notepad)的java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。2.2设计要求:课程设计可选用eclipse、jbuilder、netbeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。认真完成需求分析,建议采用uml建模技术进行系统的分析设计,在画出系统用例图和类图,并将uml图复制到设计报告中。认真按时完成课程设计报告,课程
3、设计报告内容包括:课程设计目的、设计任务与要求、设计说明书、设计成果和设计心得五个部分,具体要求见设计报告模板。通过这次设计,要求掌握以下内容:1) 面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2) 类、包、接口的定义与使用3) 常用工具类与算法的实现(数组、向量、字符串、链表)4) java.awt、javax.swing中常用标准gui组件及相应的事件处理5) java的异常处理机制6) java的数据库连接技术7) java的多线程技术与动画制作8) java的网络编程3课程设计说明书1、需求分析简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本
4、地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能2、概要设计(一)其基本功能包括:1)基本的文本操作功能。包括新建,保存,打开,保存。2)基本的编辑功能。包括复制,剪贴,粘贴。3)基本的格式功能,背景。4)简单的帮助,关于主题。(二)主要的组件包括:1) 基本的frame框架;2) 菜单;3) 打开文件对话框;4) 保存文件对话框;5) 颜色对话框;6) choice下拉列表,运来实现字体设置;7) 简单的帮助框架。(
5、三)设计示意图建立基本框架添加编辑区添加菜单添加对话框完善菜单系统建立下拉列表编辑文字建立框架实现简单帮助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_sav
6、e.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.getsourc
7、e()=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.clo
8、se();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_read
9、er); 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=jcol
10、orchooser.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指定对话框的标题“调色板”,initi
11、alcolor指定对话框返回的初始颜色,即对话框消失后,返回默认值。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,
12、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.
13、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.
14、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()=item1
15、3)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);publ
16、ic 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) 帮助中关于主题部分
17、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
18、(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框架,主要是由一个标签及一个按钮构成,由标签输出
19、“这是一个简单的文本编辑器!”,按钮用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.jcolorc
20、hooser包用 color newcolor=jcolorchooser.showdialog(this,"调色板",area.getbackground()方法;(4)至于字体功能的实现,则是先创建一个下拉列表choice list,再实现对它的监听 list.additemlistener(this), 最后用public void itemstatechanged(itemevent e)方法实现,需注意的是这种方法的实现只对javax.swing包中的组件有效,对于java.awt包中的组件,系统则是采取默认的字体名称.5、用户使用说明软硬件要求:软件方面:jav
21、a开发环境硬件方面: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 f
22、rame 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;jtext
23、area 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=
24、ge.getavailablefontfamilynames(); for(int i=0;i<fontname.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("格式"
25、);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(&qu
26、ot;粘贴");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");it
27、em13=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.ad
28、dactionlistener(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);it
29、em15.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(it
30、em4);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(ite
31、m11);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_loa
32、d=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
33、(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 v
34、oid 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.getfil
35、e()!=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_lo
36、ad.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(
37、); 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,"调色板&qu
38、ot;,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("",styl
39、e,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("",styl
40、e,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=fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版企业财务数据保密与高管离职后保密义务合同3篇
- 2024年度合同能源服务与能源管理体系认证协议3篇
- 2024版房地产开发项目工程款分期支付管理合同范本3篇
- 2024年全新债权转让担保服务合同模板下载3篇
- 2024年度乒乓球教练团队引进与管理合同3篇
- 2024年国际贸易新能源合作合同3篇
- 辽宁抚顺市六校联合体2025届高三下第一次测试数学试题含解析
- 2024版工厂承包智能制造系统集成服务合同2篇
- 2024年度国际贸易实务与合同管理实战演练合同3篇
- 江西逝校2025届高三下学期一模考试数学试题含解析
- NB-T47003.1-2009钢制焊接常压容器(同JB-T4735.1-2009)
- 聚焦高质量+探索新高度+-2025届高考政治复习备考策略
- 惠州市惠城区2022-2023学年七年级上学期期末教学质量检测数学试卷
- 北京市西城区2022-2023学年七年级上学期期末英语试题【带答案】
- ISO45001-2018职业健康安全管理体系之5-4:“5 领导作用和工作人员参与-5.4 工作人员的协商和参与”解读和应用指导材料(2024A0-雷泽佳)
- 看图猜成语共876道题目动画版
- 小学二年级上册数学-数角的个数专项练习
- 曲式与作品分析智慧树知到期末考试答案章节答案2024年兰州文理学院
- 园林设施维护方案
- 特种设备使用单位日管控、周排查、月调度示范表
- 供应链成本控制与降本增效
评论
0/150
提交评论