JAVA模拟写字板的设计与实现论文

上传人:仙*** 文档编号:34559366 上传时间:2021-10-21 格式:DOC 页数:54 大小:1.94MB
返回 下载 相关 举报
JAVA模拟写字板的设计与实现论文_第1页
第1页 / 共54页
JAVA模拟写字板的设计与实现论文_第2页
第2页 / 共54页
JAVA模拟写字板的设计与实现论文_第3页
第3页 / 共54页
点击查看更多>>
资源描述
北京邮电大学毕业设计JAVA模拟写字板摘 要目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并且涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要是通过编写一个简单的JAVA写字板程序使我们深入理解JAVA语言,并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易JAVA写字板程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,全选,撤销等多种基本功能。该程序主要用到了Java swing和事件监听等。关键词: 模拟写字板;java语言;Java swing i1Java simulation wordpad Abstract Currently, many new technologies are related to the Java language, Java is an object-oriented programming language, and relate to the network, multi-threading and other important basics, so learning Java language is object-oriented programming and network programming language of choice. The curriculum is designed primarily by writing a simple notepad program allows us to understand and practice the language-based learning in this course relevant aspects of JAVA programming, exception handling, event handling, applets and graphical user interface design content. This simple Notepad program, the use of Java programming, the text can be input operation, and has a new file, open the file, save the file, quit, copy, paste, cut, and other functions. The program is mainly used in the Java swing and event listeners and so on. Keywords: Notepad program;java language;Java swing ii北京邮电大学毕业设计 目 录摘要iabstractii1 绪论11.1选题依据11.2 国内外发展现状2 1.2.1写字板信息检索2 1.2.2写字板信息提取2 1.2.3写字板信息过滤31.3 课题研究目标31.4 编程语言的选择及特点41.5 JAVA语言的发展61.6 快捷键设置61.7 写字板学相关理论知识71.8 功能设计81.9 写字板分类82 概要分析102.1 需求分析102.2 概要设计思想102.3 自定义类说明112.4 程序运行界面解释11 2.4.1主界面实现11 2.4.2主模块的代码实现12 2.4.3文件模块的代码实现13 2.4.4编辑模块的代码实现14 2.4.5格式.帮助的实现152.5 程序模块说明162.6 流程图172.7 程序相关说明172.8 开发工具介绍193 程序详细设计与分析203.1 构建菜单栏及其下拉菜单203.2 文件的事件监听203.3 编辑,格式的事件监听223.4 异常处理234 测试分析244.1 文件模块的测试24 4.1.1 打开模块的测试24 4.1.2 保存模块的测试264.2 编辑模块的测试274.3 格式模块的测试274.4 程序异常处理295 主要代码31结 论35参考文献37致 谢38外文原文39中文翻译47 1 1 绪论1.1选题依据 写字板学的研究也像其他学科一样,有科学研究与技术研究两个层次。科学研究的目的是发现写字板的内在规律、探索和理解写字板的生成方法、建设写字板信息处理的基础资源;而技术研究则借助应用目标来驱动,根据社会的实际需要,设计和开发实用的写字板信息处理系统。 自然写字板信息处理的应用目标是使人与机之间用自然写字板进行交流。具体说,是建立各种处理自然写字板的机应用软件系统,譬如:机器翻译、自然写字板理解、语音自动识别与合成、文字自动识别、机辅助教学、信息检索、写字板自动分类、自动文摘,还有写字板中的信息提取、互联网上的智能搜索,以及各种电子词典和术语数据库。随着互联网的广泛普及,写字板信息处理的社会需求越来越大,人们迫切需要用自动化的手段处理海量的写字板信息。然而,由于学科理论发展的局限和汉语本身的复杂性,目前我国写字板学理论和方法的研究还不能为开发汉语信息处理应用系统提供足够的支持。多年来国内写字板学和自然写字板处理学科发展的特点之一是,应用型研究和实用系统开发的目标比较明确,投入相对较多,也取得了一些成果;而基础理论和方法的研究则相对薄弱。1998年-2002年期间的研究情况和发展态势依然如此。在本文上述的各种应用目标中,研究力量比较集中的项目有:写字板信息检索、文献自动分类、自动文摘、语音自动识别与合成、机器翻译,还有写字板信息提取和过滤。另外,写字板资源的建设和基于语料库的写字板分析方法也受到了格外关注,取得了比较快的进展。下面先简要叙述写字板学和写字板信息处理领域有代表性的基础研究,再介绍面向应用的研究和实用系统的研制,然后谈谈写字板资源的建设,最后介绍有关的学术会议和期刊、论著。这些工作都以书面语为研究对象,针对口语的研究将作为语音识别与合成专题另文介绍。 写字板信息管理是一项古老的活动,但管理方式却没有停止过变化,从手工记录到机存储,从平面文件到关系型数据库;从单机单用户数据库访问模式到客户/服务器模式,从客户/服务器模式到浏览器/服务器.信息管理的技术越来越先进、科学和客观。同时,可管理的信息容量也越来越大,更适应信息膨胀时代的要求。在这种情况下,开发一个写字板程序很有现实意义。 经过一个学期JAVA课程的学习,发现JAVA功能强大,应用也很广泛。虽然之前已经学过一门面向对象语言C+,但仅仅是皮毛,而且并没有真正领会到面向对象语言的思想和操作,所以想借这次期末论文设计好好深入学习JAVA的应用。但是自己在计算机语言方面基础薄弱,这次基本算是从头学起,所以就想到从设计一个小型项目做起,当时软件工程代课老师建议我做个小型写字板 即类似微软写字板的多写字板程序,并给予一些思路和建议,于是我便动手做了这个小项目。本程序为JCreator开发的单机小程序,不需要网络环境的支持,结合了面向对象和软件工程的开发思路。1.2 国内外发展现状 传统写字板的定义和范围就比较广泛了,凡是可以写粉笔字、以及水笔字以及一些免笔的儿童写字板,比较常见常用的是粉笔黑板、水笔白板以及小孩子用的塑胶小黑板等等。随着科技进步,很多学生或者办公室用的写字板都是免刷免色笔功能的,而且环保成本低,广州市文搏实业有限公司朱研究员曾经发表过文章说未来的教学设施里,粉笔黑板将会逐渐被取代,这是科技进步和环保的突出贡献。1.2.1写字板信息检索 写字板程序可以帮助人们在大量的文献资料中迅速获得所需要的信息。其中信息检索、信息提取、信息过滤和写字板分类成为近几年投入研究最多的写字板信息处理应用技术。目前的写字板程序大多采用统计语言模型和语言浅层分析规则的策略,这样就避开了自然语言理解当中难以解决的问题,把一些相对成熟的语言分析技术应用到语言工程当中。所以比起机器翻译来,写字板信息处理虽然起步要晚许多年,却取得了快得多的研究进展和应用效果。 早期的写字板信息检索(Information Retrieval,简称IR)系统是基于自由关键字和布尔模型的,语言处理技术的含量不高,虽然实用,但检索效果并不很理想。近年发展起来的基于自然语言处理的写字板检索技术,已经达到了能够处理大规模开放写字板的实用程度。其中采用的语言处理技术有:自动分词,词频统计,识别“有效词”和“停用词”,识别复合短语、专有名词和未定义词,在此基础上用概率统计的方法计算写字板的类别特征值,判断检索结果的相关程度。与此同时,写字板自动分类和自动文摘技术也被引入到检索系统里,以提高检索的效率和准确度。特别值得注意的是,写字板信息检索与机器翻译结合,形成了跨语言信息检索(Cross-language IR)的研究方向,即用某一种语言提出检索要求,计算机在其他语种的写字板中检索,再把得到的检索结果翻译成用户指定的语种。1.2.2 写字板信息提取 写字板信息提取(Information Extraction,简称IE)与写字板信息检索的不同之处是,它的目标不是提供用户感兴趣的文档,而是提供结构化的信息,譬如数据库。因此,写字板信息提取系统要在更多的自然语言处理技术支持下,把需要的信息从写字板中提取出来,再用某种结构化的形式组织起来,提供给用户(人或计算机系统)使用。信息提取技术一般被分解为五个层次:第一是识别专有名词(Named Entity),主要是人名、地名、机构名、货币等名词性条目,以及日期、时间、数字、邮件地址等信息的识别和分类;第二是模板要素(Template Element),即应用模板的方法搜索和识别名词性条目的相关信息,这时要处理的通常是一元关系。第三是模板关系(Template Relation),即应用模板的方法搜索和识别专有名词与专有名词之间的关系,此时处理的通常是二元关系。第四是同指关系(Co-reference),要解决写字板中的代词指称问题。第五是脚本模板(Scenario Template),是根据应用目标定义任务框架,用于特定领域的信息识别和组织。 写字板自动分析的研究是信息提取技术的基础。在现有的自然写字板处理技术中,从词汇分析、浅层句法分析、语义分析,到同指分析、概念结构、语用过滤,都可以应用在信息提取系统中。譬如,对专有名词的提取大多采用词汇分析和浅层句法分析技术;识别句型(如SVO)或条目之间的关系需要语义分析和同指分析;概念分析和语用过滤可以用来处理事件框架内部有关信息的关联和整合。随着对写字板的分析逐渐深入,对信息的发掘由浅到深,信息提取的实际应用也从改进搜索引擎、自动问答系统到各种信息的图示化表达(Visualization),逐渐增多。1.2.3写字板信息过滤 信息过滤是根据用户的需求用计算机从动态变化的信息流中自动检索出符合要求的信息,多用于互联网上的信息内容安全领域(如根据某种有害信息的特征描述,甄别或截流符合这些特征的网页)。写字板分类是在给定的分类体系下,利用计算机根据某种特征对写字板的内容进行划分和聚类,自动判别写字板的类别。它们大多采用统计写字板模型的方法,统计的对象包括词汇、语义信息,词语搭配信息和词语共现信息等。国际上写字板信息处理领域有一个最具权威性的评测会议:每年一次由美国国家标准技术局和美国国防高级研究计划局组织的写字板检索国际标准评测会议(TREC)。它不仅提供了含有规范的大规模语料的标准文档库,还提出了一套比较科学的测试评价方法,其评测项目也代表了新的研究方向。如2002年的评测项目包括:跨语言检索、写字板过滤、交互检索、网页检索、新信息抽取、问题回答和视频检索。中国近几年每年都高校和科研机构参加评测,在写字板信息检索、自适应写字板过滤和新信息抽取等项目中多次取得很好的名次。1.3 课题研究目标 现在网络上各种写字板程序数不胜数,有EmEditor,UEStudio,GridinSoft Notepad,Notepad+,win32pad,SkimEdit,UniRed,xint。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个写字板编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的写字板程序。这是一个用JAVA设计的简单写字板,并含有简单的文字编辑功能,如:复制,剪切,粘贴,设置字形,加粗和斜体,字体的大小调节和颜色设置,并含有简单的查找功能。写字板只能处理纯写字板文件,但是,由于多种格式源代码都是纯写字板的,所以写字板也就成为了使用最多的源代码编辑器。它只具备最基本的编辑功能,所以体积小巧,启动快,占用内存低,容易使用。“写字板”的功能虽然连“写字板”都比不上,但它还是有它自己的独门绝技的。打开速度快,文件小。写字板另一项不可取代的功能是:可以保存无格式文件。你可以把写字板编辑的文件保存为:“.html”,“.java”,“.asp”等等任意格式。这使得“写字板”又找到了一个新的用途:作为程序语言的编辑器。写字板使用的一个老窍门,在写字板文件的开头输入:“.LOG”之后你每次打开这个文件就会在自动的纪录下写字板打开的时间。按毕业设计指导书提供的课题,要求自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求我们能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。1.4 编程语言的选择及特点我选择JAVA语言,是因为JAVA语言是面向对象的,面向对象:其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。 Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性: 简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。 多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operatoroverload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。 继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。平台无关性:Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C+具有一定程度的源代码级平台无关,表明用C或C+写的应用程序不用修改只需重新编译就可以在不同平台上运行。 Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。可移植性:就是在这个系统上作的程序经过一次编译后可以移植到别的系统上解释执行,只要经过简单的粘贴和复制就行了,不影响程序的效果。 安全性:在 iSeries 服务器上运行的大多数 Java(TM) 程序是应用程序,而不是 applet,所以“砂箱”安全性模型对它们不起限制作用。从安全性的观点看,Java 应用程序所受的安全性限制与 iSeries 服务器上的任何其它程序相同。要在 iSeries 服务器上运行 Java 程序,您必须对集成文件系统中的类文件具有权限。程序一旦启动,它就在该用户权限控制下运行。 您可以使用沿用权限来访问具有运行程序的用户的权限和程序拥有者权限的对象。沿用权限临时地将用户原先无权访问的对象的权限授予用户。 并发性:JAVA支持多线程技术,就是多个线程并行机制,多线程是Java的一个重要方法,特别有利于在程序中实现并发任务.Java提供Thread线程类,实现了多线程的并发机制.然而,程序的并发执行必定会出现多个线程互斥访问临界资源的局面,因而并发系统解决的关键就是对临界资源的管理和分配问题,而在进行临界资源分配时有两方面需要考虑,即安全性和公平性.文中首先讨论了多线程并发系统中的安全性与公平性问题,指出安全性与公平性在并发系统中访问临界资源时的重要性.并通过火车行驶单行隧道的实例,演示各种条件下的行驶情况来进一步说明该问题。Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。 Java的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用Java重新编写,并且放在某个Internet服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个Java解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。 分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。 Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。 Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现Java的分布式特性。1.5 JAVA语言的发展 Java是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新(2010年Oracle公司收购了SUN)。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。 Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。 Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。1.6快捷键设置本程序要构建的写字板程序与windows中的写字板程序快捷键使用规则相仿。方便用户进行文字操作。Ctrl+N 新建一个文档Ctrl+O 打开一个文档Ctrl+S 保存一个文档Ctrl+L 另存一个文档Ctrl+Q 退出一个文档Ctrl+C 复制一个文档Ctrl+X 剪切一个文档Ctrl+V 粘贴一个文档具体实现代码如下: newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_N,InputEvent.CTRL_MASK); open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_O,InputEvent.CTRL_MASK);save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_S,InputEvent.CTRL_MASK);exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_Q,InputEvent.CTRL_MASK);cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_X,InputEvent.CTRL_MASK);copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_C,InputEvent.CTRL_MASK);paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_V,InputEvent.CTRL_MASK);selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent. VK_A,InputEvent.CTRL_MASK);timeDate.setAccelerator(KeyStroke.getKeyStroke(F5);/为控件添加快捷键1.7写字板学相关理论知识写字板学的定义与范围是比较广的,凡是可以写粉笔字,水笔字,或者一些儿童用的写字板,都可以定义为写字板程序,比较常见常用的是粉笔黑板、水笔白板以及小孩子用的塑胶小黑板等等。随着科技进步,很多学生或者办公室用的写字板都是免刷免色笔功能的,而且环保成本低,广州市文搏实业有限公司朱研究员曾经发表过文章说未来的教学设施里,粉笔黑板将会逐渐被取代,这是科技进步和环保的突出贡献。图1.1 水笔写字板 作为电脑的插件,写字板多为USB接口,需要安装驱动程序才可以使用,一般分为两部分,一支“笔”,与一块板。在笔上有一个按钮,按下后在板上指定感应区域划过,可以记录下所画的图形,适合美术专业使用,写字练笔,水画练习。1.8功能设计 本程序要构建的写字板程序参照了Windows操作系统的写字板工具,其功能有以下几个方面:1、菜单中有“文件”,“编辑”,“格式”,“帮助”四个主菜单。2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出写字板 。3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。4、“格式”菜单中有自动换行,设置字体的大小,颜色,设置文档的背景。子菜单。5、“帮助”菜单中只有“关于写字板”子菜单,主要用于显示该程序的名字,版本等信息。1.9写字板分类随着电脑技术的发展,过去一直是冷门产品的手写板,近年来在功能和文字书写辨识准确率上大幅提升,越来越多的人选择手写板来代替传统鼠标键盘,尤其是一些中老年消费者,对这类产品需求量大增。手写绘图输入设备对计算机来说是一种输入设备,最常见的是手写板(也叫手写仪),其作用和键盘类似。当然,基本上只局限于输入文字或者绘画,也带有一些鼠标的功能。手写板一般是使用一只专门的笔,或者手指在特定的区域内书写文字。手写板通过各种方法将笔或者手指走过的轨迹记录下来,然后识别为文字。对于不喜欢使用键盘或者不习惯使用中文输入法的人来说是非常有用的,因为它不需要学习输入法。手写板还可以用于精确制图,例如可用于电路设计、CAD设计、图形设计、自由绘画以及文本和数据的输入等。手写板有的集成在键盘上,有的是单独使用,单独使用的手写板一般使用USB口或者串口。目前手写板种类很多,有兼具手写输入汉字和光标定位功能的,也有专用于屏幕光标精确定位以完成各种绘图功能的。购买时首先要明确购买手写板的用途。另外,手写板在价格上的差异也很大,从百多元到几千元都有,可根据自己需要和经济情况作相应选择。电阻压力式:阻式手写板是由一层可变形的电阻薄膜和一层固定的电阻薄膜构成,中间由空气相隔离。其工作原理是: 当用笔或手指接触手写板时,上层电阻受压变形并与下层电阻接触,下层电阻薄膜就能感应出笔或手指的位置。 优点:原理简单、工艺不复杂、成本较低、价格也比较便宜。 缺点:由于通过感应材料的变形判断位置,感应材料易疲劳,使用寿命较短。感触不是很灵敏,使用时压力不够则没有感应,压力太大时又易损伤感应板。电磁压感式:电磁式手写板是通过在手写板下方的布线电路通电后,在一定空间范围内形成电磁场,来感应带有线圈的笔尖的位置进行工作。这种技术目前被广泛使用,主要是由其良好的性能决定的。使用者可以用它进行流畅的书写,手感也很好,绘图很有用。 电磁式感应板也有缺点:对电压要求高,如果使用电压达不到要求,就会出现工作不稳定或不能使用的情况。抗电磁干扰较差,易与其他电磁设备发生干扰。手写笔笔尖是活动部件,使用寿命短(一般为一年左右)。必须用手写笔才能工作,不能用手指直接操作。电容触控式:电容式手写板的工作原理是通过人体的电容来感知手指的位置,即当使用者的手指接触到触控板的瞬间,就在板的表面产生了一个电容。在触控板表面附着有一种传感矩阵,这种传感矩阵与一块特殊芯片一起,持续不断地跟踪着使用者手指电容的“轨迹”,经过内部一系列的处理,从而能够每时每刻精确定位手指的位置(X、Y坐标),同时测量由于手指与板间距离(压力大小)形成的电容值的变化,确定Z坐标,最终完成X、Y、Z坐标值的确定。因为电容式触控板所用的手写笔无需电源供给,特别适合于便携式产品。这种触控板是在图形板方式。 2 概要分析2.1 需求分析JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。一个写字板程序的基本模块一般就包含:文件,编辑,格式,帮助等;基本功能无非是:新建,打开已有文件,保存,另存为,页面设置,复制粘贴,字体等。一、文件模块包含新建,打开,保存,另存为,页面设置,打印,退出几项功能。新建即建立写字板,打开就是打开系统已有文件并显示在编辑框图内,保存是把已编辑的写字板保存到固定位置,另存为实现保存已编辑写字板但当前内容框仍可继续编辑,页面设置实现写字板的框图构架。二、编辑模块包含剪切,复制,查找,粘贴,替换,时间日期等几项功能。剪切复制粘贴都可以运用鼠标右键操作完成,查找和替换实现写字板内容相同部分的替换,同时时间日期一项可以直接点击并在写字板显示。三、格式主要是包含字体模块功能,实现设置字体。四、帮助栏主要是关于写字板的信息。 为了使系统具备上述所具备的功能,应该有一个具体的设计思路,并且脑海中应该有整体的系统架构,在经过短暂的资料查找并结合实际运用操作,系统功能的具体实现步骤及界面设计逐渐浮出水面。在对界面设计及系统需要实现的功能有了大致的框架后开始了具体开发该系统的阶段。2.2 概要设计思想该“多文档编辑器”是在Windows XP系统环境下,运用Sun公司提供的JDK及JCreator软件联合开发出来的。JDK是Java Development Kit的缩写,JCreator是适合初学者的一款开发工具。在本程序中,设计了一个菜单栏和写字板内容区。设计过程中用到了JMenu,JMenuItem等。JMenu用来制作菜单,菜单包括“文件”“编辑”“格式”“查看”“帮助”。JMenuItem主要用来制作主菜单下面的子菜单。本程序硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。2.3 自定义类说明 String():构造一个空字符串对象。String(byte bytes):通过byte数组构造字符串对象。String(byte bytes, int offset, int length):通过byte数组,从offset开始,总共length长的字节构造字符串对象。String(char value):通过char数组构造字符串对象。String(char value, int offset, int count):通过char数组,从offset开始,总共length长的字节构造字符串对象。String(String original):构造一个original的副本。即拷贝一个original。String(StringBuffer buffer):通过StringBuffer数组构造字符串对象。protected int next(int bits):产生下一个伪随机数。boolean nextBoolean():返回下一个从随机发生器的系列中得到的均匀分布的布尔值。void nextBytes(byte bytes):产生随机字节数组放到指定的数组中。2.4 程序运行界面解释2.4.1主界面图2.1 写字板程序主界面本程序主界面是由Notepad构造函数,构造初始化容器,组件后得到,并添加事件监听器。容器初始化建立主面板,包括写字内容区与菜单栏。2.4.2主模块的代码实现 图2.2 写字板程序主模块ta=new JTextArea();sta=new JScrollPane(ta);mainFrame=new JFrame(多文档编辑器);mBar=new JMenuBar();mainFrame.setJMenuBar(mBar);file=new JMenu(文件(F);file.setMnemonic(F);edit=new JMenu(编辑(E);edit.setMnemonic(E);format=new JMenu(格式(O);format.setMnemonic(O);view=new JMenu(查看(V);view.setMnemonic(V);help=new JMenu(帮助(H);help.setMnemonic(H);mBar.add(file);mBar.add(edit);mBar.add(format);mBar.add(view);mBar.add(help);主模块包括菜单栏与文本区域。菜单栏用JMenu实现,文本域用text实现,菜单栏中包括子菜单由JMenuitem实现,菜单栏包括,文件,编辑,格式,帮助。本程序主模块比较简洁,操作方便,对电脑硬件配置要求低,体积小,启动快,占用内存小,易于初学者使用,能够满足人们日常对文字的基本处理。文件使用file方法实现,编辑使用edit方法实现,格式使用format方法实现,帮助使用help方法实现。2.4.3文件模块的代码实现文件新建打开保存另存为退出 图2.3 写字板程序文件模块New=new JMenuItem(新建(N);New.setMnemonic(N);open=new JMenuItem(打开(O);open.setMnemonic(O);save=new JMenuItem(保存(S);save.setMnemonic(S);saveAs=new JMenuItem(另存为(A).);saveAs.setMnemonic(A);exit=new JMenuItem(退出(X);exit.setMnemonic(X);file.add(New);file.add(open);file.add(save);file.add(saveAs);file.add(exit); 文件模块是写字板菜单栏中的主要模块,主要用于对整个以存储的或未存储文档进行操作。主要包括新建,打开,保存,另存为,推出子菜单,新建用于建立一个新的空文档,打开用于打开已有或以存储的电子文档,保存是把已编辑的写字板保存到固定位置,另存为实现保存已编辑写字板但当前内容框仍可继续编辑,退出是退出写字板程序。新建使用new()方法实现,打开使用open()方法实现,保存使用save()方法实现,另存为使用savaas()方法实现,退出使用exit()方法实现。在打开,保存或另存为的操作中,可以打开,保存或另存为多种格式的文档,并且可以存储无格式的文档,方便与其他文档软件配合使用,转换文档属性。 2.4.4编辑模块的代码实现编辑剪切复制粘贴删除全选 图2.4 写字板程序编辑模块cut=new JMenuItem(剪切(U);cut.setMnemonic(U);copy=new JMenuItem(复制(C);copy.setMnemonic(C);paste=new JMenuItem(粘贴(V);paste.setMnemonic(V);delete=new JMenuItem(删除(L);delete.setMnemonic(L);find=new JMenuItem(查找);replace=new JMenuItem(查找和替换);edit.add(cut);edit.add(copy);edit.add(paste);edit.add(delete);edit.add(find);edit.add(replace);编辑模块是对已打开的文档进行基本编辑操作,编辑模块主要包括前切,复制,粘贴,删除,全选。剪切是将所选定的文档剪除并记录,复制是将所选定的文档重复记录,粘贴是将剪切或复制所记录的文档增加插入到指定的位置,全选是将该文档的所有内容进行选定,以方便进行编辑操作,删除是将选定的内衣除去。剪切是用cut()方法实现的,复制是又copy()方法实现的,粘贴是用paste()方法实现,删除是用delete()方法实现。2.4.5格式,帮助的实现帮助关于写字板 图2.5 写字板程序帮助模块格式背景颜色字体颜色大小 图2.6 写字板程序格式模块font=new JMenuItem(字体(F).);font.setMnemonic(F); state=new JMenuItem(状态栏(S);state.setMnemonic(S); head=new JMenuItem(帮助主题(H);head.setMnemonic(H);aboutNotepad=new JMenuItem(关于写字板 (A);aboutNotepad.setMnemonic(A);format.add(font); view.add(state); help.add(head);help.add(aboutNotepad); file.insertSeparator(4);help.insertSeparator(1); 格式菜单包括设置背景的颜色,字体的颜色,字体大小。对字体的设置用font()方法实现。帮助菜单用来显示写字板的相关信息。2.5 程序模块说明implementsNotepadextendsActionListenerJFrame 图2.7 类Notepad模块新建打开保存另存为剪切复制粘贴全选自动换行字体状态栏关于写字板 退出时间日期文件编辑格式帮助查看Notepad构造方法初始容器组件添加事件监听菜单栏文字输入区初始化初始化图2.8 程序详细模块 本程序构造一个Notepad构造方法,Notepad方法构造初始化容器,组件,添加事件监听器。继承JFrame类,执行Actionlistener,初始化后得到菜单栏与文字输入。2.6 流程图图2.9 程序流程图 本程序流程图列出了程序中所以的子菜单,子菜单实现方法,以及程序从启动程序,输入文字,对文字进行编辑,直到退出程序的执行流程。2.7 程序相关说明整个写字板分为2快:菜单栏和内容输入区。本程序中首先定义一个Notepad类继承JFrame作为最底层容器。(1)、text为程序写字板输入区。(2)、Menu为菜单栏。(3)、要想写字板完成需求分析中相应的功能,还必须添加事件监听器。事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。本程序中Listen和Listen1实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。该“多文档编辑器”是在Windows XP系统环境下,运用Sun公司提供的JDK及JCreator软件联合开发出来的。JDK是Java Development Kit 的缩写,JCreator是适合初学者的一款开发工具。 2.8 开发工具介绍 MyEclipse企业级的操作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩充,我们可以利用它在JavaEE和数据库的开发、发布以及服务器应用程序的整合方面上最大化的提升工作效率。它是JavaEE集成的开发环境,其功能丰富,包括了完整的编码、测试、调试和发布的功能,完整支持CSS,HTML, Javascript ,Struts,JSP ,Spring,SQL,Hibernate。MyEclipse 是一个十分优秀的用于开发J2EE和Java,的 Eclipse 插件集合,MyEclipse的功能十分强大,支持也非常广泛,特别是对多种不同的开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。在结构上,myeclipse的特征可以被分为7类: (1)JAVAEE模型 (2)WEB开发工具 (3)EJB开发工具 (4)应用程序服务器的连接器 (5)JAVAEE项目部署服务 (6)数据库服务 (7)Myeclipse整合帮助对于以上提到的每一种功能上的类别,在eclipse里都具有与之相对应的功能部件,并且是经过一系列的插件来实现它们。Myeclipse结构上采用的这种模块的分类方法,可以使模块在修改的时候保持自身的独立性,既可以修改所需要修改的模块,又不会影响其他模块。总的来说,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse5.5以前版本需先安装Eclipse。MyEclipse5.5以后版本安装时不需安装Eclipse。 虚拟机:Java虚拟机(Java Virtual Machine) 简称JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。37 3 程序详细设计与分析 3.1 构建菜单栏及其下拉菜单JMenu files=new JMenu(文件(F);JMenu edit=new JMenu(编辑(E); JMenu formats=new JMenu(格式(O);JMenu scan=new JMenu(查看(V);JMenu help=new JMenu(帮助(H);JMenuItem newFile=new JMenuItem(新建(N);JMenuItem open=new JMenuItem(打开(O).);JMenuItem save=new JMenuItem(保存(S);JMenuItem saveAs=new JMenuItem(另存为(A).);JMenuItem exit=new JMenuItem(退出(X);JMenuItem undo=new JMenuItem(撤销(U);JMenuItem cut=new JMenuItem(剪切(T);JMenuItem copy=new JMenuItem(复制(C);JMenuItem paste=new JMenuItem(粘贴(P);JMenuItem selectAll=new JMenuItem(全选(A);JMenuItem timeDate=new JMenuItem(时间/日期(D);JCheckBoxMenuItem lineWrap=new JCheckBoxMenuItem(自动换行(M);JMenuItem
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!