版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*软件系统设计说明书文本编译器学生学号:* 学生姓名:* 专业班级:计算* 指导教师: 职 称:讲师 起止日期:2010.10.202010.10.31 * *说明书软件系统设计任务书专业 :计算机 设计时间 : 题目:文本编译器一、 目的要求:软件系统设计是计算机科学与技术专业实践教学的一个重要环节,其目的是巩固和综合应用所学的软件设计理论知识;培养学生设计应用软件、文献查阅、报告撰写等基本技能;培养分析、设计和解决实际问题的能力以及团队协作的精神,加强创新素质教育。要求:采用面向对象的软件开发方法或者结构化生命周期方法,遵循系统开发的主要步骤,进行需求分析、概要设计、详细设计、代码编写、系
2、统调试、文档编写。最后演示系统,提交设计说明书。二、 进度安排:设计总共周。具体安排如下:选题,查资料,系统分析,代码编写;:软件系统调试修改,撰写说明书,答辩。三、 设计地点:四、 成绩考核: 指导教师: 年 月 日 - I -目 录软件系统设计任务书I第1章 绪论11.1 开发背景11.2 国内外现状11.3目的和意义1第2章 相关技术32.1 Java简介32.2 JDK技术简介62.3 MyEclipse技术简介7第3章 系统分析83.1 可行性分析83.1.1技术可行性83.1.2 经济可行性83.1.3 操作可行性83.2 需求分析83.2.1环境需求分析83.2.2 功能需求分析
3、9第4章 系统详细设计104.1类或包的加载104.2主类的设计104.3文件操作功能的实现11第5章 系统运行145.1运行用例145.2文件用例145.3编辑用例155.4帮助用例155.5打开用例165.6保存用例165.7关于用例17结 论18致 谢19参考文献20 - III - 第1章 绪论1.1 开发背景 随着计算机的普及与发展,人们的工作与生活中心逐渐转移到了计算机上。计算机的出现给人类社会带来了第三次工业革命,计算机和计算机网络已 经深入到了各行各业,各个领域,随着 Internet 的不断扩大和发展,电脑网络“把每一个国 家、每一个城市甚至每一个家庭连接到一起”,形成了一条
4、“信息高速路”,就像高速公路大 大提高了车辆行驶的速度一样。 21 世纪是个信息化的时代,现代计算机技术的发展,为各 行各业的发展创造了一个全新的时代背景人们的生活、 工作等已经越来越离不开计算机 科学的运用,而 Internet 的应用加速了这种趋势,人们越来越需要在互联网上交流各种信 息和讨论各种问题,而作为人们工作和生活的必须品文本编译器应运而生。文本编译器几乎渗透到了我们生活的方方面面。因此开发一个文本编译器则变得很有必要,而且作为新一代的大学生,并且作为一个计算机专业的学生,学习掌握文本编译器的编程过程和Java的相关知识很有必要,在这个过程中即跟随了科技发展的前沿,又丰富了我们的学
5、习生活。1.2 国内外现状 自从世界上第一台计算机发展出来开始,国外的计算机技术一直领先于国内。即使是文本编译器这种简易的工具也反应出了这种差距。在文本编辑器出现前,人们用打孔机把计算机文字打到穿孔卡片上。文字存放于一个装着这样的薄卡片的盒子里,可以用读卡器来阅读它。第一个文本编辑器是一种行编辑器,它运行在打字机型的终端上,这种编辑器并不具备在窗口和屏幕中显示的功能。它包含了一些非常短的命令(为了减少打字量)。其中一个命令能够把文件的指定部分通过打字机打印出来。编辑光标是想象中的一个插入点,通过特殊命令,可以把它移动到特定内容字符串所在的行。随后,内容字符串又被扩展成正则表达式。如果想看到文件
6、的变化,你需要把它打印出来。相对于穿孔机来说,人们认为这种基于行的文本编辑器具有革命性的进步。如果没有它,用户就需要把那些处理文本的命令打成专用的卡片,并在编辑文件时使用这些卡片。当带有显示屏的计算机终端出现后,基于显示屏的文本编辑器开始流行起来。如今文本编译器已经成为了每一个电脑工作者所必不可少的工具,在国外文本编译器这种简单的工具几乎人人都会用,大部分人都可以自主开发编写自己的文本编译器,然而在国内大部分人还只停留在简单的应用上面。从这些小程序开始锻炼自己的能力为以后国家计算机技术的发展贡献出自己的一份力量。1.3目的和意义 Java程序设计课程设计是实践性教学环节之一,是Java程序设计
7、课程的辅助教学课程。该课程设计要求学生综合运用在Java程序设计课程中学到的知识与实际编程相结合,独立完成一项较为完整、并具有一定实际功能的课程设计任务,同时加深学生对Java编程技术的理解和掌握,培养实际的应用程序开发能力。在课程设计过程中,使学生养成良好的程序设计风格并掌握Java应用程序的设计开发过程和编程方法、测试方法。本次设计的意义在于充分利用所学知识,通过老师的指导和查阅相关文献书籍等方式,通过独立自主的能力来实现本次研究的成功。并且使自身养成良好的程序设计风格,掌握初步的Java程序设计开发过程和编程方法、测试方法。相信,在老师的指导和自身的努力下,本次研究将会取得圆满成功。第2
8、章 相关技术2.1 Java简介 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。 它最初被命名为Oak,目标设定在家用
9、电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。Java 编程语言的风格十分接近C、C+语言。Java是一个纯的面向对象的程序设计语言,它继承了 C+ 语言面向对象技术的核心,Java舍弃了C +语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再
10、被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。与传
11、统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 平台是基于 Java 语言的平台。这样的平台非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿 Java 的 C#语言。J
12、ava是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性: 简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。 下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。 (1) 面向对象 面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序
13、=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。 多态性就是多种表现形
14、式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。 继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此
15、,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。 (2)平台无关性 Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C+具有一定程度的源代码级平台无关,表明用C或C+写的应用程序不用修改只需重新编译就可以在不同平台上运行。 Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令
16、,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。 另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的
17、平台无关性。 Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。 (3)分布式 分布式包括数据分布和操作分布。数据分布是指数
18、据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。 Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。 Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。 (4)可靠性和安全性 Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C+,
19、但它消除了许多C+不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。 由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病
20、毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。 上述几种机制结合起来,使得Java成为安全的编程语言。 (5)多线程 线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。 C和C+采用单线程体系结构,而Java却提供了多线程支持。 Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运
21、行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。2.2 JDK技术简介 JDK(Java Development Kit)是Sun Microsys
22、tems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。JDK 是整个Java的核心,包括了Jav运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virt
23、ual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的JrocKet在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2,1.3,1.4,而是变成了5.0,6.0了。从6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。 JDK包含的基本组件包括: javac 编译器,将源程序转成字节码 jar 打包工具,将相关的类文件打包成一个文件 javadoc 文档生成器,从源码注释中提取文档 jdb debugger,
24、查错工具 JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。 JDK中还包括各种例子程序,用以展示Java API中的各部分。 从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java (J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java
25、软件开发,也不利于团体协同开发。 JDK一般有三种版本: SE(J2SE),standard edition,标准版,是我们通常用的一个版本 EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序, ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序 Java开发工具(JDK)是许多Java专家最初使用的开发环境。尽管许多编程人员已经使用第三方的开发工具,但JDK仍被当作Java开发的重要工具。JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java API是一些预定义的类库,开发人
26、员需要用这些类来访问Java语言的功能。Java API包括一些重要的语言结构以及基本图形,网络和文件I/O。一般来说,Java API的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。作为JDK实用程序,工具库中有七种主要程序。Javac:Java编译器,将Java源代码转换成字节码。 Java:Java解释器,直接从类文件执行Java应用程序字节代码。appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。Javadoc:根据Java源码及说明语句生成HTML文档。 Jdb:Java调试器,可以逐行执行程序,
27、设置断点和检查变量。 Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。 Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。2.3 MyEclipse技术简介 MyEclipse企业级工作平台(My Eclipse Enterprise Workbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,C
28、SS,Javascript,SQL,Hibernate。MyEclipse是基于Eclipse开发的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。据官方介绍,诸如三星、IBM、戴尔、惠普、花旗集团、西门子、斯坦福大学、波音公司等知名机构均使用MyEclipse进行Java、JavaEE开发,80%以上的全球财富100强企业均是MyEclipse的用户。 MyEclipse提供了对UML、Ajax、Web、Web Services、J2EE、JSP、XML、Struts、JSF、Java Persistence、 EJB、扩展数据库以及各种应用服务器的集成支持
29、。MyEclipse也全面支持各种主流的第三方框架,让你能够快速高效地进行开发工作。此外,MyEclipse还全面支持各种基于Eclipse平台的插件,允许你自由定制或扩展个性化功能。 MyEclipse全面支持Eclipse开源平台的所有功能特性,如果你熟悉Eclipse,那么你能够轻松地上手MyEclipse,包括熟悉的Eclipse快捷键,而且使用MyEclipse完成某项任务往往要比使用Eclipse更加快速、简单。 在结构上,MyEclipse的特征可以被分为7类: (1)JavaEE模型 (2)WEB开发工具 (3)EJB开发工具 (4)应用程序服务器的连接器 (5)JavaEE项
30、目部署服务 (6)数据库服务 (7)MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。 第3章 系统分析3.1 可行性分析可行性分析是通过对项目的主要内容和配置条件,从技术,
31、经济,操作等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务,经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具有预见性,公正性,可靠性,科学性的特点。文本编译器基本设计思路是把系统按照实现模块进行分解,利用Java进行编程。3.1.1技术可行性 该系统使用Java语言编写,MyEclipse开发。由于Java语言使用灵活,功能强大,目前市场上相当多的程序和软件都是使用Java语言和MyEclipse来编写开发的,Java语言和MyEclipse技术已经相当成熟,这充分说明了该系统在技术方面
32、的可行性。3.1.2 经济可行性该系统使用的开发工具完全免费,在其开发过程中几乎不需要任何经费,而且以其简单和功能齐全的特点,预计该系统必将受到广大使用者的欢迎,这充分说明了该系统在经济方面的可行性。3.1.3 操作可行性 该系统设计的界面简单明了,使用者完全可以根据界面上按钮的信息完成所需的操作,功能全面,操作简单。这充分说明了该系统在操作方面的可行性。3.2 需求分析在科学技术飞速发展的今天,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。应用JAVA技术实现学生学习实践是可行而必要的工作 。在社会生活中我们经常需要用电脑编写一些文档来
33、保存文件,本课程设计是运用了JAVA软件开发工具开发的应用软件。适合编写记录文件。训练学生灵活应用所学Java语言的基本知识,熟练的完成问题分析、算法设计、编写程序,求解出指定的问题。训练用系统的观点和软件开发一般规范进行软件开发、巩固、深化学生的理论知识提高编程水平,并在此过程中培养严谨的科学态度和良好的工作作风,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。3.2.1环境需求分析 由于本程序是运用JAVA语言编成的所以首先必须在电脑上安装JAVA虚拟机,并对环境变量进行设置。完成JAVA的环境设置后,在集成环境Eclipse中进行编程。3.2.2 功能需求分析 本程序要构建的记
34、事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: (1)菜单栏中有“文件”,“编辑”,“帮助”四个主菜单; (2)文件菜单中有“新建”,“打开”,“保存”,“退出”四个菜单项:分别用来新建文件,打开文件,保存文件和退出编译器; (3)编辑菜单中有“剪切”,“拷贝”,“粘贴”三个菜单项:分别用来剪切所选文件,拷贝所选文件,粘贴所选文件; (4)帮助菜单中有“关于”一个菜单项:用于输出文本编译器的作者信息。 系统功能模块框图3-1如下: 新建 拷贝 粘贴 打开“帮助”菜单文本编译器“编辑”菜单“文件”菜单 保存 关于 剪切 退出 图3-1 功能模块框图 第4章 系统详细设计
35、4.1类或包的加载 import java.awt.*; import java.awt.event.*;import java.io.*;import javax.swing.*; import javax.swing.text.*;4.2主类的设计 public class EditorDemo extends JFrame JTextPane textPane = new JTextPane(); /文本窗格,编辑窗口 JLabel statusBar = new JLabel(); /状态栏 JFileChooser filechooser = new JFileChooser();
36、/文件选择器public EditorDemo() /构造函数 super(文件编译器); /调用父类构造函数 Action actions = /Action数组,各种操作命令 new NewAction(), new OpenAction(), new SaveAction(), new CutAction(), new CopyAction(), new PasteAction(), new AboutAction(), new ExitAction(); setJMenuBar(createJMenuBar(actions); /设置菜单栏 Container container =
37、getContentPane(); /得到容器 container.add(textPane, BorderLayout.CENTER); /增加文本窗格 container.add(statusBar, BorderLayout.SOUTH); /增加状态栏 setSize(400, 500); /设置窗口尺寸 setVisible(true); /设置窗口可视 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /关闭窗口时退出程序 private JMenuBar createJMenuBar(Action actions) /创建菜单栏 JM
38、enuBar menubar = new JMenuBar(); /实例化菜单栏 JMenu menuFile = new JMenu(文件); /实例化菜单 JMenu menuEdit = new JMenu(编辑); JMenu menuAbout = new JMenu(帮助); menuFile.add(new JMenuItem(actions0); /增加新菜单项 menuFile.add(new JMenuItem(actions1); menuFile.add(new JMenuItem(actions2); menuFile.add(new JMenuItem(action
39、s7); menuEdit.add(new JMenuItem(actions3); menuEdit.add(new JMenuItem(actions4); menuEdit.add(new JMenuItem(actions5); menuAbout.add(new JMenuItem(actions6); menubar.add(menuFile); /增加菜单 menubar.add(menuEdit); menubar.add(menuAbout); return menubar; /返回菜单栏 4.3文件操作功能的实现 class NewAction extends Abstra
40、ctAction /新建文件命令 public NewAction() super(新建); public void actionPerformed(ActionEvent e) textPane.setDocument(new DefaultStyledDocument(); /清空文档 class OpenAction extends AbstractAction /打开文件命令 public OpenAction() super(打开); public void actionPerformed(ActionEvent e) int i = filechooser.showOpenDial
41、og(EditorDemo.this); /显示打开文件对话框 if (i = JFileChooser.APPROVE_OPTION) /点击对话框中打开选 项 File f = filechooser.getSelectedFile(); /得到选择的文件 try InputStream is = new FileInputStream(f); /得到文件输入流 textPane.read(is, d); /读入文件到文本窗格 catch (Exception ex) ex.printStackTrace(); /输出出错信息 class SaveAction extends Abstra
42、ctAction /保存命令 public SaveAction() super(保存); public void actionPerformed(ActionEvent e) int i = filechooser.showSaveDialog(EditorDemo.this); /显示保存文件对话框 if (i = JFileChooser.APPROVE_OPTION) /点击对话框中保存按钮 File f = filechooser.getSelectedFile(); /得到选择的文件 try FileOutputStream out = new FileOutputStream(f
43、); /得到文件输出流 out.write(textPane.getText().getBytes(); /写出文件 catch (Exception ex) ex.printStackTrace(); /输出出错信息 class ExitAction extends AbstractAction /退出命令 public ExitAction() super(退出); public void actionPerformed(ActionEvent e) System.exit(0); /退出程序 class CutAction extends AbstractAction /剪切命令 pub
44、lic CutAction() super(剪切); public void actionPerformed(ActionEvent e) textPane.cut(); /调用文本窗格的剪切命令 class CopyAction extends AbstractAction /拷贝命令 public CopyAction() super(拷贝); public void actionPerformed(ActionEvent e) textPane.copy(); /调用文本窗格的拷贝命令 class PasteAction extends AbstractAction /粘贴命令 publ
45、ic PasteAction() super(粘贴); public void actionPerformed(ActionEvent e) textPane.paste(); /调用文本窗格的粘贴命令 class AboutAction extends AbstractAction /关于选项命令 public AboutAction() super(关于); public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(EditorDemo.this, 文本编辑器演示-易满满); /显示软件信息 public static void main(String args) new E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年重庆年货运从业资格证考试题答案
- 酒店住宿租赁合同模板
- 临时演出场地租赁合同样本
- 绿宝石矿建设土石方施工合同
- 食品加工销售延期付款协议
- 商业步行街房产过户模板
- 基坑支护施工合同:交通设施篇
- 城市燃气经营许可管理办法
- 分离厂电力系统安装合同
- 银行押运车司机聘用协议
- HDICT营销工程师认证考试题库及答案
- 长沙理工大学高数A(一)试卷1新
- 第二十三章旋转复习公开课一等奖市优质课赛课获奖课件
- 唐山市丰润区七年级下学期语文期末考试试卷
- 大学生心理健康教育高职PPT全套教学课件
- 合资有限公司章程(设董事会设监事会)
- 思想道德与法治知到章节答案智慧树2023年韶关学院
- 音乐人音四年级下册(2015年新编)《火车托卡塔》(课件)
- 中国智能制造产业发展报告
- GB/T 3217-1992永磁(硬磁)材料磁性试验方法
- GB/T 24531-2009高炉和直接还原用铁矿石转鼓和耐磨指数的测定
评论
0/150
提交评论