Java课程设计--文本编辑器解读.doc

上传人:scccc 文档编号:13826356 上传时间:2022-01-24 格式:DOC 页数:31 大小:544KB
返回 下载 相关 举报
Java课程设计--文本编辑器解读.doc_第1页
第1页 / 共31页
Java课程设计--文本编辑器解读.doc_第2页
第2页 / 共31页
Java课程设计--文本编辑器解读.doc_第3页
第3页 / 共31页
Java课程设计--文本编辑器解读.doc_第4页
第4页 / 共31页
Java课程设计--文本编辑器解读.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Java课程设计--文本编辑器解读.doc》由会员分享,可在线阅读,更多相关《Java课程设计--文本编辑器解读.doc(31页珍藏版)》请在三一文库上搜索。

1、淮海 工学院 计算机工程学院课程设计报告设计名称: 面向对象课程设计选题名称:文本编辑器的设计与实现姓 名: 俞凯 学 号: 2011123094专业班级: 中新软111系(院):国际学院设计时间: 20136172013630设计地点:软件实验室、教室成绩:指导教师评语:签名: 面向对象课程设计报告第 3页,共 25页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的网络编程面向对象课程设计报告第 #页,共 25页3 课程设计说明书1、需求分

4、析:简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操 作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查 看等功能2、概要设计:(一)其基本功能包括: 基本的文本操作功能。包括新建,保存,打开,保存。 基本的编辑功能。包括复制,剪贴,粘贴。 基本的格式功能,背景。文本编辑器模块 简单的帮助,关于主题。(二)主要的组件包括: 基本的Frame框架;文件打开与保存 菜单; 打开文件对话框; 保存文件对话框;

5、 颜色对话框; Choice下拉列表,运来实现字体设置; 简单的帮助框架。(三)设计流程示意图建立基本框架添加编辑区添加菜单添加对话框完善菜单系统建立下拉列表编建立框架实现简单帮助面向对象课程设计报告第 #页,共 25页面向对象课程设计报告第 5页,共 25页3、详细设计:面向对象课程设计报告第 #页,共 25页1)文件打开与保存对话框filedialog_save=new FileDialog(this,保存文件对话框 ”,FileDialog.SA VE); filedialog_save.setVisible(false);filedialog_load=new FileDialog(t

6、his,保存文件对话框,FileDialog.LOAD); filedialog_lo ad.setVisible(false);filedialog_save.addWi ndowListe ner(new Win dowAdapter()public void wi ndowClosi ng(Wi ndowEve nt e)filedialog_save.setVisible(false););filedialogo ad.addWi ndowListe ner(new Win dowAdapter()public void wi ndowClosi ng(Wi ndowEve nt e)

7、filedialog _lo ad.setVisible(false););public void action Performed(Acti onEvent e)if(e.getSource()=itemSave)filedialog_save.setVisible(true);if(filedialog_save.getFile()!=null)try File file=newFile(filedialog_save.getDirectory(), filedialog_save.getFile();tofile=new FileWriter(file);out =new Buffere

8、dWriter(tofile);out.write(area.getText().0.(area.getText().le nath(): 面向对象课程设计报告第7页,共 25页out.close(); tofile.close();catch(IOException e1) else if(e.getSource()=itemLoad)filedialog_load.setVisible(true); area.setText( null);String s;if(filedialog_l oad.getFile()!=null)tryFile file=newFile(filedialog

9、_lo ad.getDirectory(), filedialog_load.getFile(); file_reader= new FileReader(file); in=new BufferedReader(file_reader); while(s=i n. readLi ne()!=n ull) area.appe nd(s+n);in .close();file_reader.close();catch(IOException e1) 在 public void文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。先建立打开和保存对话框,actionPerformed(A

10、ctionEvent e)里分别用 FileWriter()和 FileReader()方法实现保存和打开。2) 调用颜色对话框else if(e.getSource()=item5)面向对象课程设计报告第 11页,共 25页Color newColor=JColorChooser.showDialog(this,调色板 ”,area.getBackground();if(n ewColor!=null)area.setBackgro und(n ewColor);文本编辑器要实现背景功能可以用javax.swi ng 包中的 JColorChooser 类的静态方法。Pubic static

11、 ColorshowDialog(Component,String title,Color initialColor),其中参数 Component 指定对话框所依赖的组件,即文本编辑器中的文本区area,title指定对话框的标题调色板”,initialColor指定对话框返回的初始颜色,即对话框消失后,返回默认值。3) 建立Choice下拉列表实现对字体的设置Choice list;GraphicsE nvironment ge=GraphicsE nvironmen t.getLocalGraphicsE nvironmen t();String fon tName=ge.getAvai

12、lableF on tFamilyNames();public void itemStateCha nged(ltemEve nt e)Stri ng n ame=list.getSelectedltem();Font f=new Font(n ame,Fo nt.PLAIN,15);area.setF on t(f);文本编辑器要实现对字体的设置,我选用了GraphicsE nviron me nt对象调用 Stri nggetAvailableF on tFamilyNames()方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。4) 字形,字体大小部分else if(

13、e.getSource()=item8)/ 设置字形(常规,倾斜,加粗)Font fon t=area.getF on t();int style=fo nt.getStyle();style=styleA0;area.setF ont(new Fon t(,style,fo nt.getSize();else if(e.getSource()=item9)Font fon t=area.getF on t();int style=fo nt.getStyle();style=styleA2;area.setF ont(new Fon t(,style,fo nt.getSize();else

14、 if(e.getSource()=item10)Font fon t=area.getF on t();int style=fo nt.getStyle();style=styleA1;area.setF ont(new Fon t(,style,fo nt.getSize();else if(e.getSource()=item11)/ 设置字体大小Font fon t=area.getF on t();int style=fo nt.getStyle();area.setF ont(n ew Fon t(fo nt.getName(),style,12);else if(e.getSou

15、rce()=item12)Font fon t=area.getF on t();int style=fo nt.getStyle();area.setF ont(n ew Fon t(fo nt.getName(),style,24);else if(e.getSource()=item13)Font fon t=area.getF on t();int style=fo nt.getStyle();area.setFont(new Font(font.getName(),style,36);5)剪切,复制,粘贴部分public void cha ngedUpdate(Docume ntEv

16、e nt e)Stri ng s=area.getText();public void removeUpdate(Docume ntEve nt e)cha ngedUpdate(e);public void in sertUpdate(Docume ntEve nt e)cha ngedUpdate(e);public void action Performed(Acti onEvent e)else if(e.getSource()=item2)area.cut();else if(e.getSource()=item3)area.copy();else if(e.getSource()=

17、item4)area.paste();area.cut(),文本编辑器中关于剪切,复制,粘贴功能的实现我选用处理JTextArea的DocumentEvent事件,通过area.copy(),area.paste()方法,点击编辑”中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。6) 帮助中关于主题部分else if(e.getSource()=item6)zhuti zt=new zhuti();class zhuti exte nds Frame impleme nts Acti on Liste nerButton btn;Label lab;zhuti()setLayout

18、(nu II);btn=new Button(” 确定);lab=new Label(这是一个简单的文本编辑器门;add(bt n);add(lab);btn. addAct ion Liste ner(this);setBou nds(200,200,250,150);setVisible(true);lab.setBou nds(20 ,60,220,30);lab.setFont(new Font(楷体,Font.BOLD,16);lab.setBackgro un d(Color.cya n);btn .setBou nds(100,100,50,30);btn. setBackgro

19、 un d(Color.cya n);public void acti on Performed(Act ion Eve nt e)if(e.getSource()=bt n)dispose();对于帮助中关于主题部分的实现,我另构建了一个Frame框架,主要是由一个标签及一个按钮构成,由标签输出面向对象课程设计报告第 #页,共 25页面向对象课程设计报告第 13页,共 25页MWork:Unknowr):Frame“这是一个简单的文本编辑器!”,按钮用dispose()方法实现退出功能。面向对象课程设计报告第 #页,共 25页面向对象课程设计报告第 15页,共 25页7)类图4 课程设计成果

20、面向对象课程设计报告第 17页,共 25页1、调试分析:(1) 关于打开和保存我运用了文件对话框,filedialog_save 和filedialog_load以及文件输入输出流来实现,新建功能我选用了 area.setText(null)方法.(2) 对于剪贴,粘贴,复制 的实现则用 public void removeUpdate(DocumentEvent e)及 public void in sertUpdate(Docume ntEve nt e).(3) 背景的运用也是调用了颜色对话框,需引用import javax.swing.JcolorChooser包用 ColornewC

21、olor=JColorChooser.showDialog(this,调色板 ”,area.getBackground()方法;(4) 至于字体功能的实现,则是先创建一个下拉列表Choice list, 再实现对它的监听list.addltemListener(this),最后用 public void itemStateChanged(ltemEvent e)方法实现,需注意的是这种方法的实现只对javax.swing包中的组件有效,对于java.awt包中的组件,系统则是采取默认的字体名称2、用户使用说明:软硬件要求:软件方面:Java开发环境硬件方面:JDK软件抑或是Eclipse软件对

22、硬件没有很高的要求。3、测试结果:图1:文本编辑器的运行结果:口1 X|文件编辑格式帮助1宋症d淮海工学院中新软箭凯图2文本编辑器中的菜单:面向对象课程设计报告第 #页,共 25页BI哥逢的童丰碧辑器文件鲫帽格式釉助1口1箕1新號L11俞凯打开退出面向对象课程设计报告第 19页,共 25页-lnlx|图3:字体选择下拉列表:格式礁淮海工字阮1 -字飛字吐小 面向对象课程设计报告第 #页,共 25页图4:文本编辑器文件对话框(保存文件对话框):面向对象课程设计报告第 #页,共 25页面向对象课程设计报告第 #页,共 25页丄_l_l_I_U丄_l_l_I_U丄_l_l_U_I丄_l_l_U_I

23、是乔| I| I| I| I亟jZMnlllnuMflMfld_um ni ni rrrpTTTTTTI1图5:选择背景颜色对话框:曹调色板11祥品HSBRGB预监 口 詳品文本样品文本面向对象课程设计报告第 25页,共 25页附录(源代码):import java.awt.*;import java.awt.eve nt.*;import java.io.*;import javax.sw in g.JColorChooser;import javax.swi ng.*;import javax.swi ng.eve nt.*;class Win dow exte nds Frame imp

24、leme nts Actio nListe ner,ltemListe ner,Docume ntListe nerFileDialog filedialog_save,filedialog_load;Men uBar men ubar;Menu men u1,me nu 2,me nu 3,me nu4 ,me nu 5,me nu6;Men ultemitemSave,itemLoad,item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,item14,item15;Choice

25、list;JTextArea area;BufferedReader in;FileReader file_reader;BufferedWriter out;FileWriter tofile;JScrollPa ne scrollpa ne;Win dow(Stri ng s)super(s);setSize(600,400);list=new Choice();area=new JTextArea();setVisible(true);GraphicsE nvironment ge=GraphicsE nviro nmen t.getLocalGraphicsE nvironmen t(

26、);Stri ng fon tName=ge.getAvailableF on tFamilyNames();for(i nt i=0;ifo ntName .len gth;i+)list.add(fo ntNamei);add(list,North); add(area,Ce nter);list.addItemListe ner(this);validate();menubar =new MenuBar();menu仁new Menu(” 文件); menu2=new Menu(编辑);menu3=new Menu(格式); menu4=new Menu(帮助);menu5=new Me

27、nu(字形); menu6=new Menu(” 字体大小); itemSave=new Menultem(” 保存); itemLoad=new MenuItem(打开);item仁new Menultem(” 新建); item2=new MenuItem(剪切); item3=new MenuItem(复制); item4=new MenuItem(粘贴); item5=new MenuItem(背景); item6=new MenuItem(关于主题); item7=new MenuItem(退出); item8=new MenuItem(常规); item9=new MenuItem

28、(倾斜); item10=new MenuItem(加粗); item11= new MenuItem(12); item12=n ew Me nultem(24); item13=n ew Me nultem(36); item14=new MenuItem(查找); item15=new MenuItem(替换); itemSave.addActi on Liste ner(this); itemLoad.addAct ion Liste ner(this); item1.addActio nListe ner(this); item2.addActio nListe ner(this);

29、item3.addActio nListe ner(this):item4.addActio nListe ner(this);item5.addAct ion Liste ner(this);item6.addActio nListe ner(this);item7.addActio nListe ner(this);item8.addAct ion Liste ner(this);item9.addAct ion Liste ner(this);item10.addAct ion Liste ner(this);item11.addAct ion Liste ner(this);item1

30、2.addAct ion Liste ner(this);item13.addAct ion Liste ner(this);item14.addActio nListe ner(this);item15.addActio nListe ner(this);(area.getDocume nt().addDocume ntListe ner(this);men u1.add(item1);me nu1.addSeparator();men u1.add(itemSave);me nu1.addSeparator();men u1.add(itemLoad);me nu1.addSeparato

31、r();men u1.add(item7);menu 2.add(item2);me nu 2.addSeparator();menu 2.add(item3);me nu 2.addSeparator();menu 2.add(item4);me nu 2.addSeparator();menu 2.add(item14);me nu 2.addSeparator();men u2.add(item15);menu 3.add(item5);me nu 3.addSeparator();menu 3.add(me nu 5);me nu 3.addSeparator();menu 3.add

32、(me nu 6);menu 4.add(item6);menu 5.add(item8);me nu 5.addSeparator();menu 5.add(item9);me nu 5.addSeparator();menu 5.add(item10);menu 6.add(item11);me nu 6.addSeparator();menu 6.add(item12);me nu 6.addSeparator();menu 6.add(item13):men ubar.add(me nul);men ubar.add(me nu 2);men ubar.add(me nu3);men

33、ubar.add(me nu 4);setMe nuBar(me nubar);filedialog_save=new FileDialog(this,保存文件对话框 ”,FileDialog.SA VE); filedialog_save.setVisible(false);filedialog_load=new FileDialog(this,保存文件对话框,FileDialog.LOAD); filedialog_lo ad.setVisible(false);filedialog_save.addWi ndowListe ner(new Win dowAdapter()public v

34、oid wi ndowClosi ng(Wi ndowEve nt e)filedialog_save.setVisible(false););filedialogo ad.addWi ndowListe ner(new Win dowAdapter()public void wi ndowClosi ng(Wi ndowEve nt e)filedialog _lo ad.setVisible(false););addWi ndowListe ner(new Win dowAdapter()public void wi ndowClos in g(Wi ndowEve nt e)setVis

35、ible(false);System.exit(O);); public void itemStateCha naed(ltemEve nt e)Stri ng n ame=list.getSelectedltem();Font f=new Fo nt( name,Fo nt.PLAIN,12);area.setF on t(f);public void cha ngedUpdate(Docume ntEve nt e)Stri ng s=area.getText();public void removeUpdate(Docume ntEve nt e)cha ngedUpdate(e);pu

36、blic void in sertUpdate(Docume ntEve nt e)cha ngedUpdate(e);public void action Performed(Acti onEvent e)if(e.getSource()=itemSave)filedialog_save.setVisible(true);if(filedialog_save.getFile()!=null)try File file=newFile(filedialog_save.getDirectory(),filedialog_save.getFile();tofile=new FileWriter(f

37、ile);out =new BufferedWriter(tofile);out.write(area.getText(),0,(area.getText().le ngth();out.close():面向对象课程设计报告第 #页,共 25页tofile.close();catch(IOException e1) else if(e.getSource()=itemLoad)filedialog _lo ad.setVisible(true);area.setText( null);String s;if(filedialog _l oad.getFile()!=null) tryFile

38、file=newFile(filedialog _lo ad.getDirectory(), filedialog_load.getFile();file_reader= new FileReader(file);in=new BufferedReader(file_reader);while(s=i n.readL in e()!=n ull) area.appe nd(s+n);in .close();file_reader.close();catch(IOException e1) else if(e.getSource()=item1)area.setText( null);else

39、if(e.getSource()=item2)I面向对象课程设计报告第 27页,共 25页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(n ewColor!=null)area.setBackgro und(n ewColor);else if(e.get

40、Source()=item6)zhuti zt=new zhuti();else if(e.getSource()=item7)System.exit(O);else if(e.getSource()=item8)Font fon t=area.getF on t();int style=fo nt.getStyle();style=styleA0;area.setF ont(new Fon t(.stvle.fo nt.getSize():面向对象课程设计报告第 29页,共 25页else if(e.getSource()=item9)Font fon t=area.getF on t();

41、int style=fo nt.getStyle();style=styleA2;area.setF ont(new Fon t(,style,fo nt.getSize();else if(e.getSource()=item10)Font fon t=area.getF on t();int style=fo nt.getStyle();style=styleA1;area.setF ont(new Fon t(,style,fo nt.getSize();else if(e.getSource()=item11)Font fon t=area.getF on t();int style=

42、fo nt.getStyle();area.setF ont(n ew Fon t(fo nt.getName(),style,12);else if(e.getSource()=item12)Font fon t=area.getF on t();int style=fo nt.getStyle();area.setF ont(n ew Fon t(fo nt.getName(),style,24);else if(e.getSource()=item13)Font fon t=area.getF on t();int style=fo nt.getStyle();area.setFont(

43、new Font(font.getName(),style,36);else if(e.getSource()=item14)chazhao cz=new chazhao();class zhuti exte nds Frame impleme nts Action Liste nerButton btn;Label lab;zhuti()setLayout (nu II);btn=new Button(确定);lab=new Label(这是一个简单的文本编辑器门;add(bt n);add(lab);btn. addAct ion Liste ner(this);setBou nds(200,200,250,150);setVisible(true);lab.setBou nds(20 ,60,220,30);lab.setFont(new Font(” 楷体,Font.BOLD,16);lab.setBackgro un d(Color.cya n);btn

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1