记事本程序说明书
第三章 记事本程序设计

第三章记事本程序设计3.1 记事本程序特点及设计目的记事本程序是Windows系统提供给用户的一个简单的文本编辑器,用于编辑、阅读文本格式的文件(一般以.txt为文本文件后缀)。
本章以Visual Basic的文本框控件为主要对象,设计自己的记事本程序,除了Windows系统的记事本主要功能外,还增加了自动翻页功能,即在设定时间内自动向后滚动一行,而无需人工翻页阅读。
3.1.1 记事本程序设计目的记事本程序设计的主要目的如下:1)进一步掌握Visual Basic窗口对象、文本框对象的基本属性和事件。
2)掌握Visual Basic组合框、检查框、单选按钮对象基本属性、方法和事件。
3)了解文件的基本概念、分类。
掌握文本文件和二进制文件的存储格式以及它们的读写方法。
4)掌握分支条件、Do…Loop循环、With与End With等基本语句。
5)掌握子程序的定义与调用方法。
6)掌握下拉菜单和弹出菜单的设计及其代码编写。
7)掌握Windows提供的通用对话框对象,应用该对象实现文件选择、字体选择和颜色选择功能。
8)掌握Visual Basic 6.0的自定义类型,并利用自定义类型实现应用程序的参数保存功能。
9)掌握MsgBox等基本函数。
10)掌握给Visual Basic工程添加控件和对象的方法。
11)了解Visual Basic6.0工具栏和状态栏的设计与代码编写。
12)了解Visual Basic6.0的剪贴板对象,并应用该对象实现剪切、复制、粘贴等编辑功能。
13)了解App对象。
14)通过API函数SendMessage,了解与文本框有关的消息,利用这些消息,获取光标所在位置、文档的修改标志等信息。
15)了解对象类型变量,了解FSO对象模型16)了解OLE拖放操作17)了解文件操作语句和文件系统控件3.1.2 记事本程序的功能记事本程序的主要功能是显示、编辑文本文件。
设计的主要内容如下:1)利用文本框TextBox对象,实现文本的显示与编辑。
java课设记事本说明书

*******************实践教学*******************兰州理工大学计算机与通信学院2012年秋季学期Java 课程设计题目:记事本系统设计专业班级:姓名:学号:指导教师:成绩:目录摘要 (1)序言 (2)正文 (3)1.系统设计与分析 (3)2.详细设计 (3)3.系统测试 (14)4.软件使用说明书 (17)设计总结 (18)参考文献 (19)致谢 (20)附录(程序源代码) (21)摘要本次课程设计的题目是用java语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
关键字:记事本程序;Java语言;Jcreator序言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大范围的Internet上。
1995年,Java语言的名字从Oak编程了Java。
1997年J2SE1.1发布。
1998年J2SE1.2发布,标志Java2的诞生。
十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。
Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。
Java的平台标准有Java ME,Java SE和Java EE。
Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。
目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。
写字板记事本教程

教学目的:
(1) 掌握写字板文本编辑功能; (2) 了解记事本的基本应用; (3) 写字板与记事本的格式问题 (4)掌握计算器的使用
教学难点:
写字板与记事本的格式问题
教学重点:
写字板的应用
教学方法:
任务驱动的教学模式、小组合作自主学习 的方法、比较法、实训法
7、编辑文档
·移动:先选中对象,当对象呈反白显示时,按下鼠标 左键拖到所需要的位置再放手,即可完成移动的操作。 ·复制:用户如要对文档内容进行复制时,可以先选定 对象,使用“编辑”菜单中的“复制”命令,也可以使用快 捷键Ctrl+c 来进行。移动与复制的区别在于,进行移动后, 原来位置的内容不再存在,而复制后,原来的内容还存在。 ·查找和替换:有时,用户需要在文档中寻找一些相关 的字词,如果全靠手动查找,会浪费很多时间,利用“编辑” 菜单中“查找”和“替换”就能轻松地找到所想要的内容。 这样,会提高用户的工作效率。在进行“查找”时,可选择 “编辑”—“查找”命令,弹出“查找”对话框,用户可以 在其中输入要查找的内容,单击“查找下一个”即可。
2、写字板的启动
启动的基本步骤:单击开始——所有程序——附件——写字板
3、认识窗口
写字板字处理程序的窗口由标题栏、菜单栏、工具栏、格式栏、水 平标尺、工作区和状态栏几部分组成。
4、新建文档
当用户需要新建一个文档时,启动时有一个默认格式的空白文档。 也可以在“文件”菜单中进行操作,执行“新建”命令,弹出“新 建”对话框,用户可以选择新建文档的类型,默认的为RTF 格式的 文档。单击“确定”后,即可新建一个文档进行文字的输入 。
计算器的使用
计算器是Windows XP中提供的一个计算工具,它使用起来 非常方便,功能也十分强大。选择【开始】|【所有程序】|【附 件】|【计算器】命令,即可启动计算器程序 。
创建记事本程序的操作步骤

创建记事本程序的操作步骤
嘿,朋友们!今天咱就来讲讲怎么创建记事本程序。
这可不难哦,
就像走路一样,一步一步来就好啦!
首先,咱得找到那个神奇的“开始”按钮,就像找到开启宝藏的钥匙
孔一样。
点一下它,嘿,一大串东西就冒出来啦。
然后在那里面找“所
有程序”,这就像是在一个大宝藏堆里找我们想要的宝贝。
找到“所有程序”后,再在里面仔细瞅瞅,就能发现“附件”啦。
这“附件”就像是一个藏着各种小工具的小盒子。
打开这个小盒子,哇哦,
“记事本”就在里面等着我们呢!就像找到了我们一直想要的那个小玩
具一样。
这时候,只要轻轻点一下“记事本”,嘿,它就出来啦!就像变魔术
一样,一个可以让我们写字、记录想法的地方就出现啦。
你说这神奇不神奇?就这么简单几步,我们就创建好记事本程序啦。
这就好像我们盖房子,一块砖一块砖地往上垒,最后就建成了一座漂
亮的小房子。
我们可以在记事本里写日记,记录每天的喜怒哀乐;可以写计划,
规划我们未来要做的事情;还可以写一些小灵感,说不定哪天这些小
灵感就能变成大创意呢!
想象一下,如果没有记事本,我们的那些想法、那些记忆该往哪里放呢?难道就任由它们在脑子里飘来飘去,最后消失不见吗?那多可惜呀!
所以呀,学会创建记事本程序是多么重要的一件事呀!它就像我们的一个小助手,随时准备帮我们记录下生活中的点点滴滴。
现在,你是不是觉得创建记事本程序其实很简单呀?那就赶紧去试试吧,让我们的生活因为有了记事本而变得更加丰富多彩!别再犹豫啦,行动起来才是最重要的呢!。
记事本程序说明书

*******************实践教学*******************兰州理工大学计算机与通信学院2012年秋季学期Java 课程设计题目:记事本程序专业班级:计算机科学与技术四班姓名:杨大武学号:10240426指导教师:李睿成绩:____________________一、摘要 (1)二、前言 (4)三、设计分析 (5)3.1系统概述 (5)3.2系统运行环境 (5)3.3功能需求描述 (5)四、总体设计 (5)五、系统的实现 (6)5.1主界面包括 (6)5.2完成图5-1程序代码 (8)六、操作方法与试验结果 (8)6.1 操作方法 (8)6.2复制粘贴功能 (9)6.3实验结果 (10)七、设计体会 (10)八、致谢 (11)九、参考文献 (12)附录 (13)一、摘要随着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机的算法理论基础和软件设计的基础。
JAVA是实践性很强的课程。
课程设计是加强实践能力的一个强有力手段。
要求掌握JAVA的应用、编写、上机调试的基本方法。
本次课程设计实现了一个简单记事本系统所需的功能,以及具体的设计步骤。
该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,能实现编辑、保存、另存为、查找替换等功能等功能。
该程序主要用到了Java swing和事件监听等在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。
关键词:java , Java swing,事件监听,简单记事本二、前言传统记事本存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
然而,本系程序对以上缺点设计,也是科学化、正规化的管理,与世界接轨的重要条件。
现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。
简易记事簿JAVA课设说明书

2016届课程设计《简易记事本》课程设计说明书学生姓名谭全全学号5011212506所属学院信息工程学院专业计算机科学与技术班级计算机16-5指导教师高贤强教师职称讲师塔里木大学教务处制塔里木大学课程设计任务书课程名称:Java程序设计课程所属教研室:计算机系指导教师:高贤强学号5011212506学生姓名谭全全(专业)班级计算机16-5 设计题目简易记事本设计技术内容1.掌握Java语言的程序设计方法;2.理论联系实际,进一步提高学生的软件开发技术;3.培养学生分析、解决问题的能力;4.提高学生实践论文撰写能力。
设计要求1.熟悉Java开发环境,掌握Java程序的编译和运行;2.掌握Java基本编程技术和方法;3.了解异常处理机制。
参考资料1.丁振凡主编。
Java语言实用教程【M】。
北京邮电大学出版社2004.122.丁振凡主编。
Java语言实用教程实验指导【M】。
北京邮电大学出版社 2004.12周次第一周第二周应完成内容1.准备阶段:选择设计题目、了解设计目的的要求、查阅相关资料2.程序魔窟啊设计分析阶段:程序总体设计、详细设计3.代码编写调试阶段:程序模块代码编写、调试、测试4.撰写论文阶段:总结课程设计任务和设计内容,撰写课程设计论文指导教师签字教研室主任签字说明:1、此表一式三份,院、学科组、学生各一份。
2、学生那份任务书要求装订到课程设计报告前面。
目录前言 (1)正文 (1)1.设计的目的和意义; (1)2.目标和总体方案; (1)2.1总体方案: (1)3.设计方法和内容; (2)3.1需求分析 (2)3.2功能设计 (2)3.3 程序设计思路 (2)3.4总体设计 (2)课设总结 (8)致谢 (9)参考文献: (10)附录: (11)前言Java语言程序设计是一门实践性很强的软件设计课程,是继PASCAL语言之后的又一门优秀的课程教学语言,并且是教学需要与实际应用相结合的一门语言。
VB程序说明书----记事本

目录1.作业简介: ......................................................................... - 2 -2.设计将要达到的目标: ..................................................... - 2 -3. 总体设计结构与功能 ....................................................... - 3 -3.1结构流程图 ................................. 错误!未定义书签。
3.2各功能模块运行界面及运行展示错误!未定义书签。
4.程序代码............................................................................ - 13 -5. 作业设计体会 ...................................... 错误!未定义书签。
VB大作业程序说明书1.作业简介:Windows记事本是功能强大,运用方便,体积小巧,启动快,占用内存小的应用软件。
除此之外,windows记事本还有一个强大的功能,就是保存无格式文件。
在这学期通过学习Visual Basic对制作记事本产生兴趣,便模仿windows 记事本通过VB软件来编写一个记事本程序。
此次作业主要是锻炼我们的VB设计能力和思维考虑能力,是我们的VB学习真正的用到实处,这对我们将来的学习和工作有着重要作用。
2.设计将要达到的目标:记事本主要是对文字进行编辑处理的软件。
能进行新建、打开、保存等功能;并且能运用剪贴、复制、粘贴、清除功能,对文字更方便的录入。
另外还可以根据用户的需要查找相应的文字,实现编辑功能。
新建:新建立一个记事本文档。
保存:重命名一个名字,保存文档。
打开:将打开一个已经存储在计算机中的文件(*.txt或*.rtf文件)。
记事本设计说明

记事本设计说明3023001083 奚苏立混合(3)班1.需求分析1.1记事本要求满足一般用户对文本文件编辑的最基本要求。
采用菜单和对话框操作,界面简洁友好,用户可直接在文本框中进行文本输入和编辑,支持所有英文纯文本文件。
支持多文件打开处理,块操作,文件之间的操作等。
一个类似Edit的Dos程序。
1.2 记事本功能文件:可在任意时刻打开或新建文件,可将文件另存。
也可对打开后的任意文件进行保存关闭。
在退出时,对于没有保存的文件,程序将给予提示。
编辑:支持所有块操作。
利用菜单或快捷键设置块头,块尾(系统可自动调整相对位置)或取消块定义。
有粘贴,拷贝,剪切等功能。
可以在文件之间进行操作。
查找:提供查找和替换功能。
对于查找,有匹配整个单词和匹配字母大小写两个选项。
对于替换,除上两个选项,还有整体替换选项。
(对于查找和替换,对话框已写出,但由于最后时间过紧,因此具体实现代码没有写出)。
窗口:可在任意已打开文件之间进行切换。
帮助:提供对所有操作的详细说明。
几乎所有操作都有对应的快捷键,使用户使用更加方便。
2.总体设计整个程序共分两大块:Document和View。
Document主要负责对文件内容的内部储存和管理。
对文本的输入或编辑都由Docum ent负责。
它可以将磁盘上的文件按自己内部格式读入内存,或将编辑内容按纯文本格式保存至磁盘。
Document会根据用户对文本的操作对内存中的文件内容进行修改,如插入,编辑。
同时还要储存编辑时的状态信息:如光标的位置,块的定义位置,文件是否保存过等,因此对于翻页,光标移动等操作,Document都将有所响应。
Document还会给V iew提供足够的信息和操作,如从哪里开始显示,每段的字数,总段数,光标的位置等。
(当然,有的信息可能会用不上)。
总之,关于文件内容的一切信息都归于Document。
但是,这部分用户是不可见的,用户并不直接和Document打交道。
V iew主要负责界面的显示和刷新。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*******************实践教学*******************兰州理工大学计算机与通信学院2012年秋季学期Java 课程设计题目:记事本程序专业班级:计算机科学与技术四班姓名:杨大武学号:10240426指导教师:李睿成绩:____________________一、摘要 (1)二、前言 (4)三、设计分析 (5)3.1系统概述 (5)3.2系统运行环境 (5)3.3功能需求描述 (5)四、总体设计 (5)五、系统的实现 (6)5.1主界面包括 (6)5.2完成图5-1程序代码 (8)六、操作方法与试验结果 (8)6.1 操作方法 (8)6.2复制粘贴功能 (9)6.3实验结果 (10)七、设计体会 (10)八、致谢 (11)九、参考文献 (12)附录 (13)一、摘要随着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机的算法理论基础和软件设计的基础。
JAVA是实践性很强的课程。
课程设计是加强实践能力的一个强有力手段。
要求掌握JAVA的应用、编写、上机调试的基本方法。
本次课程设计实现了一个简单记事本系统所需的功能,以及具体的设计步骤。
该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,能实现编辑、保存、另存为、查找替换等功能等功能。
该程序主要用到了Java swing和事件监听等在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。
关键词:java , Java swing,事件监听,简单记事本二、前言传统记事本存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
然而,本系程序对以上缺点设计,也是科学化、正规化的管理,与世界接轨的重要条件。
现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。
功能也是应有尽有,有能改变字体的,有能改变文字颜色的。
但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。
本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。
三、设计分析3.1系统概述记事本主要是对文字进行编辑处理的软件。
能进行新建、打开、保存等功能;并且能运用剪贴、复制、粘贴、清除功能,对文字更方便的录入。
另外还可以根据用户的需要查找相应的文字,实现编辑功能。
3.2系统运行环境●操作系统:Windows XP●开发语言: JAVA●开发工具:JCreatorPro3.3功能需求描述由于记事本是一套简单的文本编辑器。
要求记事本不但要具备完善的编辑、方便的性能,还要提供更简便的操作。
这就要求设计人员在编辑过程当中尽可能的考虑到。
包括以下内容:1、对文本进行编辑;2、用户根据不同的权限可对文本进行添加、删除、修改等操作;3、对记事本进行各种编辑(精确、简单);四、总体设计记事本采用现有的编辑,简单的记事本编辑器,充分利用大家现有的编辑,减少大家的时间,提高大家对记事本的熟练。
记事本就具备编辑功能,可以及时根据大家需求进行新建、保存操作。
记事本筐架图4-1五、系统的实现5.1主界面包括文件、编辑、查找、帮助操作界面子目录包括 复制、粘贴、新建、查找等,如图3-1显示。
图5-1.1记事本小程序文件 编辑 查找 帮助新建保存打开复制粘贴清除查 找查找 替换帮助图5-1.2 图5-1.3图5-1.45.2完成图5-1程序代码见附录六、操作方法与试验结果6.1 操作方法将需的文字录入该文本框,然后进行该程序的功能测试,以《我住在麦子里》为例。
我们要实现文本框的查找功能。
如查找文中的“大地”,将鼠标移动到查找后单击,然后输入“大地”。
图6-1.16.2复制粘贴功能选中复制内容,点击复制,然后在需要的位置点击粘贴。
图6-1.26.3实验结果输入要查找的内容时,点击“查找”,程序就能找出文中包含“大地”的这句。
并将其置于页顶。
实现了文字的查找功能。
对于所复制的内容将光标移动到相应的位置,然后点击粘贴,之后就实现了文字的复制粘贴功能。
七、设计体会通过设计记事本小程序,了解了实现该类型程序的方法,掌握了需要用到的代码、类、算法等。
有些小问题还是没有掌握,比如建立清晰的类层次、分析和定义各个类,每个类中要有各自的属性和方法、面向对象的机制(继承、派生及多态性)来实现系统功能。
我将在今后的学习过程中尽量完善自己的编程水平,使自己能够尽快的适应社会工作的需要,以求做到最好。
八、致谢在这里感谢我的指导老师王燕老师和李睿老师,她们在我的课程设计过程中提出了指导性的方案和架构:在定义类各类和分析各类的属性和方法上帮我理清了详细的类层次;在系统整体设计时要求用面向对象机制并运用继承、派生和多态性;并在设计过程中不断指引我发现错误,改正错误。
并教育我要思路开阔,发散思维,考虑问题全面细致,并指引我阅读相关的资料和书籍,不断完善自己的程序,使我的课程设计能够顺利完成。
九、参考文献[1]曲朝阳,杨杰明等.Java程序设计. 北京: 清华大学出版社,2008.10[2]耿祥以,张跃平.Java大学生实用教程. 北京: 电子工业出版社,2012.6[3]明日科技.Java经典编程.北京:清华大学出版社,2012.10[4]李尊朝,苏军.Java语言程序设计.北京:中国铁道出版社,2004.2[5]王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990.附录import java.awt.*;import java.awt.event.*;import java.io.*;import java.awt.datatransfer.*;class MyMenuBar extends MenuBar{public MyMenuBar(Frame parent){parent.setMenuBar(this);}public void addMenus(String [] menus){for(int i=0;i<menus.length;i++)add(new Menu(menus[i]));}public void addMenuItems(int menuNumber,String[] items){for(int i=0;i<items.length;i++){if(items[i]!=null)getMenu(menuNumber).add(new MenuItem(items[i])); else getMenu(menuNumber).addSeparator();}}public void addActionListener(ActionListener al){for(int i=0;i<getMenuCount();i++)for(int j=0;j<getMenu(i).getItemCount();j++)getMenu(i).getItem(j).addActionListener(al);}}class MyFile{private FileDialog fDlg;public MyFile(Frame parent){fDlg=new FileDialog(parent,"",FileDialog.LOAD);}private String getPath(){return fDlg.getDirectory()+"\\"+fDlg.getFile();}public String getData() throws IOException{fDlg.setTitle("打开");fDlg.setMode(FileDialog.LOAD);fDlg.setVisible(true);BufferedReader br=new BufferedReader(new FileReader(getPath()));StringBuffer sb=new StringBuffer();String aline;while((aline=br.readLine())!=null)sb.append(aline+'\n');br.close();return sb.toString();}public void setData(String data) throws IOException{fDlg.setTitle("保存");fDlg.setMode(FileDialog.SAVE);fDlg.setVisible(true);BufferedWriter bw=new BufferedWriter(new FileWriter(getPath()));bw.write(data);bw.close();}}class MyClipboard{private Clipboard cb;public MyClipboard(){cb=Toolkit.getDefaultToolkit().getSystemClipboard();}public void setData(String data){cb.setContents(new StringSelection(data),null);}public String getData(){Transferable content=cb.getContents(null);try{return (String) content.getTransferData(DataFlavor.stringFlavor);//DataFlavor.stringFlavor会将剪贴板中的字符串转换成Unicode码形式的String对象。
//DataFlavor类是与存储在剪贴板上的数据的形式有关的类。
}catch(Exception ue){}return null;}}class MyFindDialog extends Dialog implements ActionListener{private Label lFind=new Label("查找字符串");private Label lReplace=new Label("替换字符串");private TextField tFind=new TextField(10);private TextField tReplace=new TextField(10);private Button bFind=new Button("查找");private Button bReplace=new Button("替换");private TextArea ta;public MyFindDialog(Frame owner,TextArea ta){super(owner,"查找",false);this.ta=ta;setLayout(null);lFind.setBounds(10,30,80,20);lReplace.setBounds(10,70,80,20);tFind.setBounds(90,30,90,20);tReplace.setBounds(90,70,90,20);bFind.setBounds(190,30,80,20);bReplace.setBounds(190,70,80,20);add(lFind);add(tFind);add(bFind);add(lReplace);add(tReplace);add(bReplace);setResizable(false);bFind.addActionListener(this);bReplace.addActionListener(this);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){MyFindDialog.this.dispose();}});}//构造函数结束public void showFind(){setTitle("查找");setSize(280,60);setVisible(true);}public void showReplace(){setTitle("查找替换");setSize(280,110);setVisible(true);}private void find(){String text=ta.getText();String str=tFind.getText();int end=text.length();int len=str.length();int start=ta.getSelectionEnd();if(start==end) start=0;for(;start<=end-len;start++){if(text.substring(start,start+len).equals(str)){ta.setSelectionStart(start);ta.setSelectionEnd(start+len);return;}}//若找不到待查字符串,则将光标置于末尾ta.setSelectionStart(end);ta.setSelectionEnd(end);}public Button getBFind() {return bFind;}private void replace(){String str=tReplace.getText();if(ta.getSelectedText().equals(tFind.getText()))ta.replaceRange(str,ta.getSelectionStart(),ta.getSelectionEnd());else find();}public void actionPerformed(ActionEvent e) {if(e.getSource()==bFind)find();else if(e.getSource()==bReplace)replace();}}class MyMemo extends Frame implements ActionListener{private TextArea editor=new TextArea(); //可编辑的TextAreaprivate MyFile mf=new MyFile(this);//MyFile对象private MyClipboard cb=new MyClipboard();private MyFindDialog findDlg=new MyFindDialog(this,editor);public MyMemo(String title){ //构造函数super(title);MyMenuBar mb=new MyMenuBar(this);//添加需要的菜单及菜单项mb.addMenus(new String[]{"文件","编辑","查找","帮助"});mb.addMenuItems(0,new String[]{"新建","打开","保存",null,"全选"});mb.addMenuItems(1,new String[]{"剪贴","复制","粘贴","清除",null,"全选"});mb.addMenuItems(2,new String[]{"查找",null,"查找替换"});mb.addMenuItems(3,new String[]{"我的记事本信息"});add(editor); //为菜单项注册动作时间监听器mb.addActionListener(this);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){MyMemo.this.dispose();}}); //分号不能忘了} //构造函数完public void actionPerformed(ActionEvent e){String selected=e.getActionCommand(); //获取菜单项标题if(selected.equals("新建"))editor.setText("");else if(selected.equals("打开")){try{editor.setText(mf.getData());}catch(IOException ie){}}else if(selected.equals("保存")){try{mf.setData(editor.getText());}catch(IOException ie){}}else if(selected.equals("退出")){dispose();}else if(selected.equals("剪贴")){//将选中的字符串复制到剪贴板中并清除字符串cb.setData(editor.getSelectedText());editor.replaceRange("",editor.getSelectionStart(),editor.getSelectionEnd());}else if(selected.equals("复制")){cb.setData(editor.getSelectedText());}else if(selected.equals("粘贴")){String str=cb.getData();editor.replaceRange(str,editor.getSelectionStart(),editor.getSelectionEnd());//粘贴在光标位置}else if(selected.equals("清除")){editor.replaceRange("",editor.getSelectionStart(),editor.getSelectionEnd());}else if(selected.equals("全选")){editor.setSelectionStart(0);editor.setSelectionEnd(editor.getText().length());}else if(selected.equals("查找")){findDlg.showFind();}else if(selected.equals("查找替换")){findDlg.showReplace();}}public static void main(String[] args){MyMemo memo=new MyMemo("记事本");memo.setSize(650,450);memo.setVisible(true);}}。