您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Java课程设计--文本编辑器
淮海工学院计算机工程学院课程设计报告设计名称:面向对象课程设计选题名称:文本编辑器的设计与实现姓名:俞凯学号:2011123094专业班级:中新软111系(院):国际学院设计时间:2013.6.17~2013.6.30设计地点:软件实验室、教室指导教师评语:签名:年月日成绩:面向对象课程设计报告第2页,共25页1.课程设计目的《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用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页,共25页3.课程设计说明书1、需求分析:简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能2、概要设计:(一)其基本功能包括:①基本的文本操作功能。包括新建,保存,打开,保存。②基本的编辑功能。包括复制,剪贴,粘贴。③基本的格式功能,背景。④简单的帮助,关于主题。(二)主要的组件包括:①基本的Frame框架;②菜单;③打开文件对话框;④保存文件对话框;⑤颜色对话框;⑥Choice下拉列表,运来实现字体设置;⑦简单的帮助框架。(三)设计流程示意图建立基本框架添加编辑区添加菜单添加对话框完善菜单系统建立下拉列表编辑文字建立框架实现简单帮助文本编辑器模块文件打开与保存变更面板颜色字体的设置字形和字体大小的设置剪切复制粘贴帮助中【关于主题】面向对象课程设计报告第4页,共25页3、详细设计:1)文件打开与保存对话框filedialog_save=newFileDialog(this,保存文件对话框,FileDialog.SAVE);filedialog_save.setVisible(false);filedialog_load=newFileDialog(this,保存文件对话框,FileDialog.LOAD);filedialog_load.setVisible(false);filedialog_save.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){filedialog_save.setVisible(false);}});filedialog_load.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){filedialog_load.setVisible(false);}});publicvoidactionPerformed(ActionEvente){if(e.getSource()==itemSave){filedialog_save.setVisible(true);if(filedialog_save.getFile()!=null){try{Filefile=newFile(filedialog_save.getDirectory(),filedialog_save.getFile());tofile=newFileWriter(file);out=newBufferedWriter(tofile);面向对象课程设计报告第5页,共25页out.write(area.getText(),0,(area.getText()).length());out.close();tofile.close();}catch(IOExceptione1){}}}elseif(e.getSource()==itemLoad){filedialog_load.setVisible(true);area.setText(null);Strings;if(filedialog_load.getFile()!=null){try{Filefile=newFile(filedialog_load.getDirectory(),filedialog_load.getFile());file_reader=newFileReader(file);in=newBufferedReader(file_reader);while((s=in.readLine())!=null)area.append(s+'\n');in.close();file_reader.close();}catch(IOExceptione1){}}}}文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。先建立打开和保存对话框,在publicvoidactionPerformed(ActionEvente)里分别用FileWriter()和FileReader()方法实现保存和打开。2)调用颜色对话框elseif(e.getSource()==item5)面向对象课程设计报告第6页,共25页{ColornewColor=JColorChooser.showDialog(this,调色板,area.getBackground());if(newColor!=null)area.setBackground(newColor);}文本编辑器要实现背景功能可以用javax.swing包中的JColorChooser类的静态方法。PubicstaticColorshowDialog(Component,Stringtitle,ColorinitialColor),其中参数Component指定对话框所依赖的组件,即文本编辑器中的文本区area,title指定对话框的标题“调色板”,initialColor指定对话框返回的初始颜色,即对话框消失后,返回默认值。3)建立Choice下拉列表实现对字体的设置Choicelist;GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();StringfontName[]=ge.getAvailableFontFamilyNames();publicvoiditemStateChanged(ItemEvente){Stringname=list.getSelectedItem();Fontf=newFont(name,Font.PLAIN,15);area.setFont(f);}文本编辑器要实现对字体的设置,我选用了GraphicsEnvironment对象调用String[]getAvailableFontFamilyNames()方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。4)字形,字体大小部分elseif(e.getSource()==item8)//设置字形(常规,倾斜,加粗){Fontfont=area.getFont();intstyle=font.getStyle();style=style^0;area.setFont(newFont(,style,font.getSize()));}elseif(e.getSource()==item9)面向对象课程设计报告第7页,共25页{Fontfont=area.getFont();intstyle=font.getStyle();style=style^2;area.setFont(newFont(,style,font.getSize()));}elseif(e.getSource()==item10){Fontfont=area.getFont();intstyle=font.getStyle();style=style^1;area.setFont(newFont(,style,font.getSize()));}elseif(e.getSource()==item11)//设置字体大小{Fontfont=area.getFont();intstyle=font.getStyle();area.setFont(newFont(font.getName(),style,12));}elseif(e.getSource()==item12){Fontfont=area.getFont();intstyle=font.getStyle();area.setFont(newFont(font.getName(),style,24));}elseif(e.getSource()==item13){Fontfont=area.getFont();intstyle=font.getStyle();area.setFont(newFont(font.getName(),style,36));}面向对象课程设计报告第8页,共25页5)剪切,复制,粘贴部分publicvoidchangedUpdate(DocumentEvente){Strings=area.getText();}publicvoidremoveUpdate(DocumentEvente){changedUpdate(e);}publicvoidinsertUpdate(DocumentEvente){changedUpdate(e);}publicvoidactionPerformed(ActionEvente){elseif(e.getSource()==item2){area.cut();}elseif(e.getSource()==item3){area.copy();}elseif(e.getSource()==item4){area.paste();}}文本编辑器中关于剪切,复制,粘贴功能的实现我选用处理JTextArea的DocumentEvent事件,通过area.cut(),area.copy(),area.paste()方法,点击“编辑”中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。6)帮助中关于主题部分elseif(e.getSource()==item6)面向对象课程设计报告第9页,共25页{zhutizt=newzhuti();}classzhutiextendsFrameimplementsActionListener{Buttonbtn;Labellab;zhuti(){setLayout(null);
本文标题:Java课程设计--文本编辑器
链接地址:https://www.777doc.com/doc-6040198 .html