《java课设—文本编辑器的设计与实现.pdf》由会员分享,可在线阅读,更多相关《java课设—文本编辑器的设计与实现.pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 淮 海 工 学 院 计算机工程学院 课程设计报告 设计名称:面向对象课程设计 选题名称:文本编辑器的设计与实现 姓 名:学 号:专业班级:系(院):计算机工程学院 设计时间:2015.6.212014。7。4 设计地点:计算机楼机房、教室、宿舍 指导教师评语:签名:年 月 日 成绩:面向对象课程设计报告 第 1 页,共 14 页 1课程设计目的 面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用 Java 语言进行面向对象设计的基本方法,提高运用面向对象知
2、识分析实际问题、解决实际问题的能力。2课程设计任务与要求:课程设计可选用 NetBeans、Eclipse、JBuilder 等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用 UML 建模技术进行系统的分析设计,在 Visio 中画出系统用例图和类图,并将 UML 图复制到设计报告中。通过这次设计,要求掌握以下内容:1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用 2)类、包、接口的定义与使用 3)常用工具类与算法的实现(数组、向量、字符串、链表)4)Java 常用标准 GUI 组件及其事件处理 5)Java 的异常处理机制 6)Java 的数据库连
3、接技术 7)Java 的多线程技术与动画制作 8)Java 的网络编程 任务:设计一个类似于 Windows 记事本(Notepad)的 Java 程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中.能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。面向对象课程设计报告 第 2 页,共 14 页 3课程设计说明书 3。1 需求分析 现在网络上各种文编辑器数不胜数,有 EmEdit
4、or,UEStudio,GridinSoft Notepad,Notepad+,win32pad,SkimEdit,UniRed,xint,功能也是应有尽有.但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序.简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中的现有纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编
5、辑操作能够实现文本的剪贴、复制、粘贴等,格式操作能够实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能。3。2 概要设计 1、其基本功能包括:(1)基本的文本操作功能:新建、保存、打开、退出.(2)基本的编辑功能:复制、剪切、粘贴、查找、替换。(3)基本的格式功能:背景,字形(常规、倾斜、加粗),字体大小(12、24、36)。(4)简单的帮助:关于主题.(5)各种字体的选择:楷体、宋体、隶书等。2、主要的组件包括:(1)基本的 Frame 框架;(2)菜单;(3)打开文件对话框;(4)保存文件对话框;(5)颜色对话框;(6)Choice 下拉列表,运来实现字体设置;(7)简单的帮助框架
6、。面向对象课程设计报告 第 3 页,共 14 页 3、设计示意图 冯 莲 的 文 本 编 辑 器 文件 新建 保存 打开 退出 字体 编辑 剪切 复制 粘贴 查找 替换 格式 背景 字形 常规 倾斜 加粗 背景 帮助 关于主题 12 24 36 面向对象课程设计报告 第 4 页,共 14 页 3。3 程序的功能设计:文本编辑器中先设置了四个菜单,分别为文件,编辑,格式和帮助。将打开,新建,保存放入文件菜单中,复制,粘贴,剪贴放入编辑菜单中,背景和关于主题分别在格式和帮助菜单中。(一)其主要功能的实现见下:(1)关于打开和保存我运用了文件对话框,filedialog_save 和 filedia
7、log_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)至于字体功能的实现
8、,则是先创建一个下拉列表 Choice list,再实现对它的监听 list。addItemListener(this),最后用 public void itemStateChanged(ItemEvent e)方法实现,需注意的是这种方法的实现只对 javax.swing 包中的组件有效,对于 java.awt 包中的组件,系统则是采取默认的字体名称。(二)此设计共有以下几个功能模块:文件:点击文件出现下拉列表,有新建、保存、打开、退出选项,点击新建即可新建文本进行编辑;点击打开即可从本地磁盘里打开一个文档;编辑完成后进行保存,可保存在本地磁盘里.编辑:点击编辑出现下拉列表,有剪贴、复制、粘
9、贴、查找、替换选项,在编辑文本时可以用这些操作。格式:为了设计界面美观,格式中有字体、字形、背景操作,可以对编辑的文本进行修饰.关于主题:显示界面,这是个简单的文本编辑器。3。4 主要功能程序的流程图 面向对象课程设计报告 第 5 页,共 14 页 4课程设计成果 4.1 主要代码(1)文件打开与保存对话框 文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。先建立打开和保存对话框,在 public void actionPerformed(ActionEvent e)里分别用 FileWriter()和 FileReader()方法实现保存和打开。filedialog_save=
10、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(fal
11、se););filedialog_load。addWindowListener(new WindowAdapter()开始 文件 编辑 格式 帮助 新建 保存 退出 背景 剪切 复制 字体大小 粘贴 字形 打开 字体 212 关于主题 3常规 倾斜 黑体 仿宋宋体 加粗 面向对象课程设计报告 第 6 页,共 14 页 public void windowClosing(WindowEvent e)filedialog_load。setVisible(false););public void actionPerformed(ActionEvent e)if(e.getSource()=itemS
12、ave)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(I
13、OException 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.
14、readLine()!=null)面向对象课程设计报告 第 7 页,共 14 页 area.append(s+n);in。close();file_reader.close();catch(IOException e1)(2)调用颜色对话框 文本编辑器要实现背景功能可以用 javax.swing 包中的 JColorChooser 类的静态方法。Pubic static Color showDialog(Component,String title,Color initialColor),其中参数 Component指定对话框所依赖的组件,即文本编辑器中的文本区 area,title 指定对话
15、框的标题“调色板,initialColor指定对话框返回的初始颜色,即对话框消失后,返回默认值。else if(e.getSource()=item5)Color newColor=JColorChooser.showDialog(this,调色板”,area.getBackground();if(newColor!=null)area.setBackground(newColor);(3)建立 Choice 下拉列表实现对字体的设置 文本编辑器要实现对字体的设置,我选用了 GraphicsEnvironment 对象调用 String getAvailableFontFamilyNames(
16、)方法,该方法可以获取计算机上所有可用的字体名称,并存放到字符串数组中。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);(4
17、)字形,字体大小部分 else if(e.getSource()=item8)/设置字形(常规,倾斜,加粗)Font font=area.getFont();面向对象课程设计报告 第 8 页,共 14 页 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
18、(”,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);e
19、lse 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)剪切,复制,粘贴部分 面向对象课程设计报告 第 9 页,共 14 页 文本编辑器中关
20、于剪切,复制,粘贴功能的实现我选用处理 JTextArea 的 DocumentEvent 事件,通过 area.cut(),area。copy(),area。paste()方法,点击“编辑中相应菜单项可以选择将文本区中选中的内容剪切,复制,粘贴。public void changedUpdate(DocumentEvent e)String s=area。getText();public void removeUpdate(DocumentEvent e)changedUpdate(e);public void insertUpdate(DocumentEvent e)changedUpda
21、te(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();(6)帮助中关于主题部分 对于帮助中关于主题部分的实现,我另构建了一个 Frame 框架,主要是由一个标签及一个按钮构成,由标签输出“这是一个简单的文本编辑器!”,按钮用 dispose()方法实现退出功能。else if(e。getSource()=item6)
22、zhuti zt=new zhuti();面向对象课程设计报告 第 10 页,共 14 页 class zhuti extends Frame implements ActionListener Button 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,
23、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();4.2 运行结果显示 如图 1:文本编辑器主界面 面向对象课程设计报告 第 11 页,共 14 页 如图 2:文本编辑器文件菜单 如图 3:文本编辑器编辑菜单 如图 4:文本编
24、辑器格式菜单 如图 5:文本编辑器帮助菜单 面向对象课程设计报告 第 12 页,共 14 页 如图 6:文本编辑器字体格式和背景 面向对象课程设计报告 第 13 页,共 14 页 如图 7:文本编辑器文件的保存 5.课程设计心得 通过这次的课程设计,我受益了很多,因为这次设计是使用界面设计的程序,原本对这些学的不精的我,通过这次的课程设计让我学会了使用图形用户界面。对基本的图形用户界面的设计已经掌握.在刚开始入手做这个课程设计的时候只完成了图形界面,它们相对应的监听器真的是不知如何下手,我几乎想了一天左右再加上在网上搜了些相关的资料才开始有点思绪。编程期间,我一直记得老师说过,最好写一段代码,
25、就编译一下,这样到最后才不会那么多错。每次编译都有错,有些是我能看懂的,能自己改过来的,有些让我摸不着头脑。浪费好多时间都没有改出来,最后找 JAVA 学的好的同学帮我看了看,改了过来。顿时感觉好有成就感。本实验主要用到的知识包括菜单、布局管理器、滚动条、弹出提示信息对话框、输入对话框、打开文件对话框、保存文件对话框、事件处理,以及文本文件的读写。通过本次实验,对图形界面的操作,事件处理操作的综合运用,使得在本次实验中本学期的知识得到了更好的整合和进一步的理解。由于自身基本功能不扎实,虽然这与这与其他人的课题比起来是个很简单的程序了,但我在做的过程中还是遇到了很多困难,我尽我所能去完成它。我希望在以后能通过自己的不断努力做得更好,明白得更加深刻!