基于java的文本编辑软件的设计与实现.doc

上传人:奥沙丽水 文档编号:56234 上传时间:2025-07-09 格式:DOC 页数:133 大小:1.26MB
下载 相关 举报
基于java的文本编辑软件的设计与实现.doc_第1页
第1页 / 共133页
基于java的文本编辑软件的设计与实现.doc_第2页
第2页 / 共133页
基于java的文本编辑软件的设计与实现.doc_第3页
第3页 / 共133页
基于java的文本编辑软件的设计与实现.doc_第4页
第4页 / 共133页
基于java的文本编辑软件的设计与实现.doc_第5页
第5页 / 共133页
点击查看更多>>
资源描述

1、平顶山学院本科毕业设计 目 录1 绪论11.1课题研究的背景及意义11.2 文本编辑器软件的应用现状11.3 本文工作和结构安排21.3.1 本文主要工作21.3.2 本文结构安排31.4 小结32 相关技术介绍42.1 Java技术42.1.1 Java特点42.1.2 程序开发常用包52.2 小结63 系统分析与设计73.1 软件需求分析73.2 系统类设计83.3 系统总体设计133.3.1 设计原理153.3.2 功能模块划分153.4 小结174 详细设计与实现184.1 系统开发平台及工具选择184.2 主窗体设计与实现184.3 新建功能设计与实现204.3.1 新建功能概述20

2、4.3.2 新建功能技术分析204.3.3 新建功能实现过程214.4 打开功能设计与实现214.4.1 打开功能概述214.4.2 打开功能技术分析214.4.3 打开功能实现过程224.5保存功能设计与实现224.5.1 保存功能概述224.5.2 保存功能技术分析224.5.3 保存功能实现过程234.6 全选功能设计与实现234.6.1 全选功能概述234.6.2 全选功能技术分析234.6.3 全选功能实现过程234.7 退出功能设计与实现244.7.1 退出功能概述244.7.2 退出功能技术分析24414.7.3 退出功能实现过程244.8 查找功能设计与实现254.8.1 查找

3、功能概述254.8.2 查找功能技术分析254.8.3 查找功能实现过程25 4.9 查找下一个功能设计与实现264.9.1 查找下一个功能概述264.9.2 查找下一个功能技术分析264.9.3 查找下一个功能实现过程26 4.10 替换功能设计与实现274.10.1 替换功能概述274.10.2 替换功能技术分析274.10.3 替换功能实现过程28 4.11 设置字体功能设计与实现284.11.1 设置字体功能概述284.11.2 设置字体功能技术分析284.11.3 设置字体功能实现过程28 4.12 编译功能设计与实现294.12.1 编译功能概述294.12.2 编译功能技术设计2

4、94.12.3 编译功能实现过程30 4.13 运行功能设计与实现304.13.1 运行功能实现概述304.13.2 运行功能技术分析304.13.3 运行功能实现过程314.14 获取系统时间功能设计与实现31 4.15 复制功能设计与实现31 4.16 剪切功能设计与实现32 4.17 粘贴功能设计与实现32 4.18 帮助功能设计与实现32 4.19 小结335测试目的34 5.1测试目的34 5.2 功能测试34 5.3界面测试34 5.4 小结366 结束语37 6.1 总结37 6.2 展望37附 录38参考文献40致 谢411 绪论 本章是论文的序言部分,将论述论文研究的背景、意

5、义、研究现状以及论文要完成的工作。文本编辑器的应用是编写文本的重要编辑软件,良好的界面以及使用方便是重要前提,通过对现有的应用现状的分析,提出了本课题的研究方向。最后将给出本文的主要组织结构,从整体上阐述论文的工作。1.1 课题研究的背景及意义随着计算机技术的不断发展,文本编辑器已成为大家必不可少的工具,但是不同的用户对文本编辑器有不同的功能需求,除了像Office中的word还有WPS等大众文本编辑器,还需要一些操作简单,帮助电脑初学者的文本编辑器。市场上出现的和用户所使用的文本编辑器种类繁多,功能也是各式各样,其中有相当一部分是很优秀的1。例如,word软件提供了可以编辑文字图形、图像、声

6、音、动画,还可以插入其他软件的制作信息;提供了强大的制表功能;提供了大量的模板;提供了web工具的支持等,WPS也提供了强大的文本编辑功能。但是电脑初学者学习word和WPS是非常困难的,很多功能都不知道如何使用,如在文本中的页码问题、页眉问题、格式问题等。因此开发一个操作简单,易于学习的文本编辑软件对电脑初学者显得较为重要。1.2 文本编辑器软件的应用现状信息化时代的步伐加快了我们的生活脚步,也提高了我们的生活质量和工作效率。文本编辑器软件作为大家编辑文本的重要工具,基本上代替了手写,利用文本编辑软件可以高效的进行文本的编辑。这种工作方式已经成为当下重要工作的模式之一。文本编辑软件能够帮助人

7、们适应现在的高速度的生活,能够对用户编辑的文本进行打开、修改、替换、查找、粘贴、复制、剪切和保存等功能,能够更加快速的完成工作,帮助用户提高工作效率。现在有太多的文本编辑软件,而且文本编辑软件有的功能繁多,学习它们的功能需要发费很长的时间,并且很多功能是不容易学习的。对于文本编辑的电脑初学者来说不知道如何使用这些功能强大的文本编辑软件,并且学起来不是很容易,而他们只需要会使用文本编辑软件的基础功能2。因此设计一个操作简单,易于学习,界面优美的文本编辑器是现在文本编辑软件应该解决的问题。1.3 本文工作和结构安排针对文本编辑器软件的开发过程,本文在软件工程理论的指导下,以一个实际文本编辑器开发为

8、背景,提出一种基于Java技术的文本编辑器的设计与实现方案,并进行文本编辑器软件的设计开发实践。该小节概述本文主要工作和结构安排。1.3.1 本文主要工作本文主要研究并完成基于Java语言的文本编辑软件的设计与实现。本文针对现有软件存在的一些问题,在软件工程理论指导下,进行文本编辑器软件的分析、设计与实现,并详细讨论了软件实现过程当中的相关技术。具体工作内容如下:1.文本编辑软件的需求分析本文在软件工程理论的指导下,通过实地调研去了解文本编辑人员对文本编辑软件的各种功能需求,总结现有编辑人员的工作流程,分析现有文本编辑器的问题,最后确定本文要完成的文本编辑器软件。2.文本编辑器软件的类设计本文

9、针对项目的需求,通过深入比较己有的基础架构,分析研究Java所能采用具体技术的优缺点与适用情况,对整个软件所需要的类进行了设计,对各个模块的功能进行了定义和划分。软件采用Java技术,以Windows自带的记事本为开发平台。3.文本编辑软件的设计文本编辑软件的设计遵循低耦合,高聚合的模块划分原则,把具有复杂功能的软件通过设计分解为具有基本独立,功能简单,易于实现等特点的文件、操作、格式、演示,格式、帮助等多个功能模块,并详细阐述了每个模块的功能设计。4.文本编辑软件的实现该部分的工作主要包含以下4个方面:(1) 功能的实现,文本编辑软件要实现用户的基本需求,要实现文本编辑器的主要功能,包括新建

10、功能、打开功能、保存功能、全选功能、复制功能、剪切功能、粘贴功能、查找功能、替换功能和帮助功能。(2) 详细阐述文本编辑软件实现过程中的相关技术问题,这些相关技术问题包括Java语言的掌握以及使用、各个功能模块的实现、主界面的设计。(3) 文本编辑软件的开发平台及工具的选择,选用windows自带的记事本进行业务实现,Java虚拟机作为后台支持。软件使用Java语言编写代码,采用Java的GUI(图形用户界面)窗体进行的主窗体的开发。(4) 文本编辑软件的测试,编制详细完善的测试用例并进行测试,以保证系统的质量。通过上述研究拟达到如下预期目标:通过文本编辑软件的开发和设计,满足文本编辑人员需要

11、为文本编辑用户提供一个良好的编辑界面,提高用户的工作效率。1.3.2 本文结构安排 本软件是通过对现有文本编辑器本身的特点,主要作用等各方面进行全面综合的了解,分析,归纳和总结,结合文本编辑器的主要功能,开发的应用软件。本文详细介绍了软件的开发过程和各个模块的功能。运用面向对象的方法进行软件分析和软件设计。本文主要分六个部分的内容:1 绪论:本章主要介绍了课题研究的背景及意义、文本编辑软件的应用现状和论文的工作和结构安排。2 相关技术介绍:本章主要介绍了Java技术,从Java特点和Java程序的开发常用包来说明。3 系统分析与设计:本章主要讲的是系统的功能需求分析、系统类设计和系统的总体设

12、计。4 详细设计与实现:本章主要讲的是系统开发平台及工具的选择和主窗体的设计和软件的主要功能的设计以及软件的详细实现。5 测试:本章主要讲的是系统的功能测试和界面测试,达到预期的功能效果。6 结束语:本章主要讲的是总结、展望。总结本文的主要工作和对未来工作的展望。1.4 小结本章首先介绍了本软件研究的背景及意义,研究现状,帮助了解该课题需要完成的功能,最后介绍了论文主要工作和结构安排,以便于可以在保证论文质量的前提下按照计划顺利地完成本论文的撰写。2 相关技术介绍软件开发的实践过程离不开理论的指导和工具的应用。本章将主要介绍文本编辑软件设计和实践过程中使用到的Java软件技术理论知识。通过对开

13、发技术知识的深入研究,为该系统的设计与实现做好充分的知识准备。2.1 Java技术2.1.1 Java特点Java是一个简单的、面向对象的、分布的、健壮的、安全的、与平台无关的、可移植的、高性能的、多线程的,以及动态的解释型语言3。由于Java最初是为控制电子产品设计的,因此它简单明了。为了保证这种简单性,Java去掉了C+中许多复杂的、冗余的、有二义性的概念,例如操作符重载、多继承、数据类型自动转换等。为了将程序员从复杂的内存管理的负担中解脱出来,同时也是为了减少错误,Java使用了自动内存垃圾收集机制,程序员只要在需要的时候申请即可,不需要释放,而由Java自己来收集、释放内存中的无用的块

14、4。1.Java是一种支持分布式操作的程序设计语言。使用Java提供的URL类,用户可以象访问本地文件一样访问网络上的对象,使用非常方便。在客户机/服务器的模式下,Java还可以将运算从服务器端分散到客户端,提高系统的效率,避免了服务器的瓶颈制约。Java的网络类库支持分布式的编程。Socket类提供可靠的流式网络的连接,支持TCP/IP协议。通过编写协议句柄,程序员还可以扩充Java支持的协议集合。2.Java提供非常有效的安全控制。由于Java应用于网络程序的开发,因而安全性至关重要。因为Java小程序需要下载到客户端解释执行,所以,如果没有安全控制,就会给一些网络黑客以可乘之机,这对用户

15、来说是非常危险的。所幸的是,Java的安全机制可以有效的防止病毒程序的产生、下载程序对本地文件系统的破坏,以及网络黑客窃取密码和入侵。3.Java是一种非常健壮的语言。因为在Java中使用了以下手段:(1) 自动内存垃圾收集机制。Java自动收集无用的内存单元,进而防止了由于内存泄漏导致的动态内存分配问题。(2) 完善的异常处理机制。既简化了错误处理任务和恢复,也增加了程序的可读性5。4.Java具有非常好的平台无关性和可移植性。Java使用一种与平台无关的代码字节码,而不是通常的特定机器上的机器码,由平台上的Java虚拟机中的Java解释器解释执行。使用Java作为编程语言,只要进行一次程序

16、开发工作,所开发的程序不需要经过任何改动,便能在各种平台上运行。Java采用基于国际标准的数据类型使Java的应用程序不依赖与具体的系统。5.Java是一种高性能的语言。健壮性、安全性、平台无关性、可移植性等方面的提高总是要以牺牲性能为代价的。Java的内存管理增加了运行时系统的复杂性,因为Java运行时系统必须内嵌一个内存管理模块;同样,Java程序的解释执行的效率也要低于直接执行编译后的源码的效率。但是Java采用了一些很好的措施来弥补这些性能上的差距:(1) 生成高效的字节码。Java字节码的设计充分考虑了性能的因素,字节码的格式简单,解释器可以生成高效的机器码。(2) 提供了即时编译和

17、嵌入C代码的可选措施。即时编译是指在运行时把字节码编译成机器码6。2.1.2 程序开发常用包 Java中的包指的是目录,它是为了更好的管理Java类和接口。Java语言的包可以被另一个Java开发包所使用,如果要引用某个包中的类,用import关键字表明7。Java中常见的包有:java.applet、java.awt、java.io、java.lang、java.util和javax.swing等。其中java.applet包含了一些设计小应用程序的类和接口;java.awt是一个窗口工具箱包,里面是一些GUI界面相关的类;java.io包支持输入输出,比如文件输入流类;java.lang包

18、含线程,异常,系统整数等相关的类,是Java程序中默认加载的一个包;java.util包含一些程序的公用类;javax.swing包括Swing容器、组件及相关设置的类和接口。1.java.awt程序包Java.awt程序包提供了创建图形用户界面的全部工具,包括:图形组件类,如窗口,对话框,按钮,复选框,列表,菜单,滚动条和文本区等类;用于管理组件排列布局管理器Layout类以及常用的颜色Color类,字体Font类。Java.awt.evevt类库用来处理不同类型的事件。2.java.applet程序包Java.applet是所有java小程序的基础类库。它只包含了一个applet类,所有小

19、程序都是由该类派生出来的。3.java.lang程序包Java.lang是Java语言的基础类库,包含基本数据类型,数学函数,字符串类等。这是唯一自动引入每个Java程序的类库。4.java.io程序包Java.io 程序包是Java语言的输入输出类库,Java语言的文件操作都是由该类库中的输入输出类来实现的,此外该类库还提供了一些与其他外部设备交换信息的类。Java.io程序包除了包含标准输入输出类以外,还有缓存流,过滤流,管道流和字符串类等。5.javax.swing程序包Javax.swing程序包提供了三个通用的顶层容器类JFrame,JDialog和JApplet。JFrame类提供

20、了基于窗体的应用程序,JDialog类提供对话框形式的界面,JApplet提供Java小应用程序的界面形式。常用的Swing组件包括按钮、单选按钮、复选框、文本区、文本字段、列表、下拉列表、树和表格等。2.2 小结本章研究了文本编辑器所使用的理论知识和工具环境。通过这一章的研究,主要研究和掌握以下两点:1.Sun公司的Java技术;2.Java程序的开发常用的包。本章为后续章节的软件分析、设计和实现做了强有力的技术支持。3 系统分析与设计需求分析是软件开发的基础,需求分析得出的结论是软件开发后续阶段的工作依据,直接决定着最终软件能否满足用户的需求,决定着软件开发的成功与否。而系统设计的也是系统

21、开发的重点和难点,严重的影响者软件的质量。本章将主要完成文本编辑器的需求分析和系统设计。3.1 软件需求分析需求在软件产品的整个生存期中占有非常重要的位置,它是软件工程项目的依据和出发点。无论是软件的开发还是软件的维护都是以满足需求作为最终目的的。软件系统的需求一般可以分为功能性需求和非功能性需求。功能性需求是系统需要实现的,提供给用户使用的具体的功能;非功能性需求是为了满足用户对系统功能的需求,系统正常工作所应当具备的系统的特定特性,如性能、安全性、可用性、可扩展性等等,二者互为影响8。本小节阐述文本编辑软件的需求分析,主要是从功能需求方面阐述。本文完成的文本编辑器软件主要是针对电脑初学者,

22、帮助电脑初学者用户掌握编辑文本的简单的操作。 需求分析的任务是确定功能必须完成的工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求开发是为研发出符合用户需求的产品而进行的需求收集分析和确定研发内容活动过程。需求分析的任务是发现问题域并求精的过程,当在需求可以被分析之前,必须通过一个诱导过程来收集客户需求。需求获取的主要目标是在开发之前更好的理解要解决的问题。在经过多方了解和研究之后,基本上清楚了此文本编辑器的功能需求。根据此文本编辑器的的实际要求,应具有以下几个方面的功能需求:1.文本新建功能:文本编辑器清空文本区,重新分配新的内存空间。在运行该编辑器时,可以直接编辑默认的新建文件,

23、在左边的树中正在编辑的文件显示有File1,右边的文件文本域所在的Tab标签上显示的也是file1.txt。2.文本打开功能:指定打开本地计算机上的文本文件,打开之后放在另一个文本区中,在左边的树中正在编辑的文件显示有打开文本的文本名,右边的文件文本域所在的Tab标签上显示的也是当前的文本名。3.文本保存功能:保存文本文件到指定的地方,保存后的文本格式可以为“*.java ,*.html,*.cpp,*.txt”。4.全选功能:可以对当前正在进行编辑的文本进行全选功能,提高效率。5.字符串查询功能:在当前文件中查找字符串,在弹出的对话框中输入所要查找的字符串,点击确定开始查找,找到后显示高亮。

24、并且能够查找下一个所要查询的内容。6.替换功能:可以对查找到的所有内容都能够进行替换。7.退出功能:退出文本编辑器,释放内存。8.复制功能:选中文字,复制到后台。9.字体设置功能:可以改变文本区中被选定的文字的字体的大小和样式。10.剪切功能:选中文字,剪贴到后台。11.粘贴功能:将复制或剪切的文字,粘贴到指定的位置。12.代码运行功能:将编译好的代码,运行出结果。如果运行错误,显示出错原因。13.代码编译功能:连接本地计算上的Java虚拟机,对编写的代码进行编译,如果编译错误,会显示错在第几行;如果编译没有错误,则显示编译成功。文本编辑软件的界面要求操作简单,要求在窗口顶部设有菜单栏,分别有

25、文件,操作,演示,格式,编辑和帮助;要求在菜单栏下面设有工具栏,分别有打开按钮,新建按钮,保存按钮,退出按钮,查找按钮,查找下一个按钮,替换按钮,设置字体按钮,复制按钮,剪切按钮,粘贴按钮,帮助按钮;要求在文本编辑器右边的文本域用于编辑文本,右边中间的文本域用于显示光标的行号,右边下面的文本域是显示编译和运行信息;要求界面的文本区域可以随意调节大小。系统用例图如图3-1所示。系统用例图描述如表3-1所示。3.2 系统类设计软件类设计是软件系统中的核心元素,是构建软件系统中其他部分所依赖的基础。类的设计指的是系统各个组成部分协同工作的方式的连接。软件的各个组成部分正是通过类之间所描绘的方式进行协

26、同工作,共同完成软件的功能,最终向外界表现出一个完整的软件。因此,软件类的设计的好坏会从根本上决定基于这个架构所构建的软件系统的质量。总的来说,类的的构建一直是软件开发过程中的一项重要工作。文本编辑软件中类与方法的使用如表3-2所示:自定义的SimpleEditor类是文本编辑器的主类,继承JFrame类。SimpleEditor是构造函数;init方法初始化编辑器上的所有控件;inithelp方法初始化帮助信息,以表格的形式显示文本编辑器的快捷键的信息;exitEditor方法退出文本编辑器。图3-1 系统用例图自定义的键盘事件类MyKeyListener继承KeyAdapter类,重写父类

27、的keyPressed方法,处理键盘被按下时的事件。自定义的文件选择器FileChooser类继承JFileChooser类。approveSelection方法实现文件的选择;getSelectedFile方法获得被选中的文件;getCurrentDirectory方法获得被选择文件所在的目录;setSelectedIndex方法将新页设为当前页; append方法把内容添加到文本域中;write方法将文件的文本域中的内容保存到文件;cancelSelection方法处理关闭文件选择器事件;dispose方法将文件选择器窗口关闭。自定义的文件过滤器类Filter继承FileFilter类,重

28、写父类的accept方法。accept方法决定是否允许文件通过文件过滤器;getDescription方法获得文件选择器的描述。自定义的获取当前光标所在行号CaretLis_line类实现了CaretListener的接口,显示当前编辑文本的光标行号。caretUpdat方法实现文本组件的插入点改变;getCaretPosition方法获得文本域中光标插入点的位置;getLineOfOffset方法,能够获得插入点所在的行号。自定义的鼠标事件类MouseListener_console继承MouseAdapter类。mouseClicked方法实现鼠标在控制台文本域中被单击;getCaretP

29、osition方法获得插入点的位置,通过getLineOfOffset方法获得插入点所在的行号。自定义的窗口事件监听器WindowListener类继承WindowAdapter类,windowClosing方法实现处理关闭窗口事件。自定义的切换tab事件类ChangeTab实现ChangeListener接口。stateChanged方法实现切换JTabbedPane的页时出发该类事件;getSelectedIndex方法获得被选择页的索引,并将它设置为当前操作页的索引。自定义的Act_NewFile类实现ActionListener接口,是新建功能事件的监听器。add方法实现更新tab页功

30、能;setRightComponent方法将组件设置在分割条的右边;setDividerLocation方法实现设置分隔条的坐标;setSelectedIndex方法实现设置选择页面的编号;addTab方法实现添加一个新的Tab页;remove方法实现更新树的功能。表3-1 系统用例图描述表用例编号UCEDITOR001用例名称文本编辑器的基本操作用例概述用户对文本编辑器进行基本操作,实现文本编辑器的使用范围用户项目相关人利益说明项目相关人利益用户 进行文本编辑的操作前置条件成功打开文本编辑器后置条件对文件进行操作,关闭文本编辑器成功保证用户对文本编辑文件操作成功基本事件流步骤活动1本地文件操

31、作2编辑操作扩张事件流1a打开本地文件,保存到本地文件2a对编辑的文本进行全选,设置字体,复制,剪切,粘贴,查找字符串和替换功能子事件流无规则与约束用户打开文本编辑器,对文件进行正确操作自定义的Act_OpenFile类实现ActionListener接口,是打开功能事件的监听器。setVisible方法实现设置打开的界面是否可见的功能;setTile方法实现设置打开界面标题的功能;setSize方法实现设置打开界面尺寸的功能;getContentPane方法实现初始化一个容器,在容器上添加一些控件的功能。自定义的Act_SaveFile类实现ActionListener接口,是保存功能事件的

32、监听器。setTitle方法实现输入保存文件名的提示功能;close方法实现对已存在的文件,直接保存的功能;add方法实现添加控件的功能;showMessageDialog方法实现信息提示对话框的功能;getTitleAt方法实现得到保存文件名的功能。 自定义的Act_Find类实现ActionListener接口,是查找功能事件的监听器。requestFocues实现鼠标键盘焦点放在当前文本域中;select方法实现将匹配内容显示高亮的功能;indexOf方法实现判断文本是否包含查找内容的功能;getText方法实现获得文本域中文本的功能;length方法实现查找字符串长度的功能;showM

33、essageDialog方法实现显示一个对话框;showInputDialog方法实现显示一个输入对话框。自定义的Act_FindNext类实现ActionListener接口,是查找下一个功能事件的监听器。select方法实现将匹配内容显示高亮的功能;indexOf方法实现判断文本是否包含查找内容的功能;getText方法实现获得文本域中文本的功能; showMessageDialog方法实现显示一个对话框。自定义的Act_Replace类实现ActionListener接口,是替换功能事件的监听器。replaceSelection方法实现替换文本域中被选择的内容;getText方法实现获得

34、文本域中文本的功能;length方法实现查找字符串长度的功能;showMessageDialog方法实现显示一个对话框;showInputDialog方法实现显示两个输入对话框。输入查找内容和替换内容。自定义的Act_SetFont类实现ActionListener接口,是设置字体功能事件的监听器。getAvailableFontFamilyNames方法实现获得系统全部字体的功能;isSelected方法实现是否被选择的功能。自定义的Act_Copy类实现ActionListener接口,是复制功能事件的监听器。copy方法实现文字的复制功能。自定义的Act_Cut类实现ActionList

35、ener接口,是剪切功能事件的监听器。cut方法实现文字的剪切功能。自定义的Act_Paste类实现ActionListener接口,是粘贴功能事件的监听器。paste方法实现文字的复制功能。自定义的Act_ExitEditor类实现ActionListener接口,是退出功能事件的监听器。exitEditor方法实现退出编辑器的功能。表3-2 类与方法关系表SimpleEditorinitexitEditorinitHelpSimpelEditorSimpleEditor类: MyKeyListenerkeyPressedgetKeyCodeisContorlDownisAltDownMyK

36、eyListener类: appendgetCurrentDirectorydisposeaddpadsetSelectedIndexwritecancelSelectionapproveSelectionFileChoosergetSelectedFileFileChooser类:FilterreturnacceptgetDescriptiongetNameFilter类:CaretLis_linegetCaretPositioncaretUpdategetLineOfOffsetCaretLis_line类:mouseClickedSelectGet:ineOfOffsetgetCaret

37、PositiongetTextgetLineStartOffsetMouseLis_consoleMouseLis_console类:续表3-2WindowListenerwindowClosingexitEditorWindowListener类Act_ChangeTabstateChangedgetSelectedIndexAct_ChangeTab类:Act_NewFilesetSelectedIndexremovesetRightComponentsetDividerLocationaddTabaddactionPerformedAct_NewFile类:Act_OpenFileadd

38、ChoosableFileFiltergetContentPanesetTilesetVisiblesetSizeactionPerformedAct_OpenFile类:Act_OpenFileaddChoosableFileFiltergetContentPanesetTilesetVisiblesetSizeactionPerformedAct_OpenFile类:actionPerformedAct_FindshowInputDialogshowMessageDialoglengthgetTextindexOfrequestFocusselectAct_Find类:续表3-2actio

39、nPerformedAct_FindNextselectshowMessageDialogindexOfgerTextAct_FindNext类:Act_ReplaceactionPerformedshowMessageDialoggetTextlengthshowInputDialogreplaceSelectionAct_Replace类:actionPerformedisSelectedsetFontactionPerformedgetAvailableFontFamilyNamesintValuegetSelectedItemAct_SetFontAct_SetFont类:action

40、PerformedAct_CopycopyAct_Copy类:actionPerformedAct_CutcutAct_Cut类:actionPerformedAct_PastepasteAct_Paste类:actionPerformedAct_ExitEditorexitEditorAct_ExitEditor类:3.3 系统总体设计软件功能设计的主要任务是确定软件的功能如何实现,是软件实现的基础。在设计中,应该注意的是设计的统一和准确。设计工作一定要遵循相应的设计原理,才能做出好的设计。系统功能模块的划分,是遵循设计原理,在需求分析基础上进行的,是把具有复杂能力功能的系统通过设计分解为具

41、有基本独立,功能简单,易于实现等特点的多个功能模块。本节针对文本编辑器软件的需求,结合系统设计的原理,进行系统模块的划分,并对每一模块都进行了详细的设计。3.3.1 设计原理 系统设计是下一阶段系统实现的基础,设计的好坏严重影响系统实现的质量。设计工作一定要遵循相应的设计原理,才能做出好的设计。设计原理如下:抽象,是指在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。模块化,是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

42、有人说,模块化是为了使一个复杂的大型程序能被人的智力所管理,软件应该具备的惟一属性。如果一个大型程序仅由一个模块组成,它将很难被人所理解。逐步求精,是解决复制问题时采用的基本方法,最初是由Niklaus Wirth提出的一种自顶向下的设计策略。按照这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。通过逐步分解对功能的宏观陈述而开发出层次结构9。求精实际上是细化的过程。3.3.2 功能模块划分 本程序涉及的是对图形用户界面的设计与实现和主要功能的设计与实现。通过对文本编辑软件的系统需求的分析,软件功能模块划分如下几个主要模块,设计见图3-2所示:在功能结构图上可以知道,对文本

43、编辑软件进行了六个模块的划分,分别是文件功能模块,操作功能模块,演示功能模块,格式功能模块,编辑功能模块和帮助功能模块。下面将对这六个模块进行详细的介绍。1.文件模块文件模块主要包括新建,打开,保存,全选,退出功能。在运行该编辑器时,可以直接编辑默认的新建文件File,在左边的树中正在编辑的文件显示有File1,可以在文本区对文字及代码的输入和修改。需要打开本地文件时,可以打开“*.java ,*.html,*.cpp,*.txt”文件,在左边的树中会显示打开的文件的名称,在文本区中会重新显示一个窗口。当对编辑好的文本进行保存时,需要选择文件存储路径。当需要退出文本编辑器时,点击退出按钮。图3

44、2 软件功能模块图2.操作模块操作模块主要包括查找,查找下一个和替换功能。通过查找功能,在当前文件中查找字符串,在弹出的对话框中输入所要查找的字符串,点击确定开始查找找到后显示高亮。查找下一个可以帮助用户看看有几处出现想要查找的字符串,以便提高工作效率。当需要进行替换时,点击替换按钮会出现一个对话框,输入你要查找的字符串,然后输入需要替换的字符串,如果文本中有很多处查找的字符串会一直显示你是否需要替换。 3.格式模块格式模块主要包括设置字体功能和获取当前时间功能。当需要改变字体的大小和样式的时候,可以点击设置字体按钮,改变文本区中被选定的文字的字体的大小和样式。4.编辑模块编辑模块主要包括复

45、制功能,剪切功能和粘贴功能。当点击复制按钮时,可以对所选的文本域进行复制,可以方便用户可以更快的编辑。当点击剪切按钮时,可以对所选中的文本域进行剪切,把内容粘贴到所需要的地方。复制,剪切和粘贴功能是文本编辑器中重要的功能,可以对所编辑的文本进行方便的编辑。5.演示模块演示模块主要包括编译功能,运行功能,开始动画功能和停止动画功能。连接本机的Java虚拟机,对源代码进行编译及编译后运行,编译如果出现错误,会在右下方文本域中显示出现错误的行号以及出现错误的原因,如果没有出现错误,就可以点击运行按钮,对所写的代码进行运行。6.帮助模块帮助模块是显示用此文本编辑器时所需要注意的一些事项和告诉用户与功能相关的快捷方式,帮助用户更好的了解和使用。3.4 小结本章主要从功能需求方面对软件进行了进行了需求分析,通过分析,为以后软件的设计打下了基础;阐述了本软件类的设计,从软件包括的功能模块上进行了描述。4 详细设计与实现编码是在详细设计的基础上进行的,它将详细设计得到的处理过程的描述转换为基于某种计算机语言的程序,进而实现软件的设计。本章包含两部分内容:一是文本编辑器软

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

当前位置:首页 > IT计算机 > Java

宁ICP备18001539号-1