




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
黎美婵Java语言课程期末作业Java语言课程期末作业题 目 第6题: 文本编辑器 学 院 计算机学院 专 业 网络工程 班 别 13级(3 )班 学 号 姓 名 2015年06月17日一、课程题目 制作一个简单的文本编辑器,交互性要求:【最大选题人数:5】 (1) 可输入文字(仅要求英文及标点符号) (2) 实现一些常用的编辑功能:如复制和粘贴,查找和替换,首字母自动大写,拼写自动更正 (3) 可打开并显示TXT文件,并且可以将编辑结果保存为TXT文件二、题目分析与设计 1. 注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。开发环境:Eclipse 2. 论述题目的需求。给出软件功能架构图。 本题目要求实现类似于一个记事本的文本编辑器功能。要能够输入文字,能够实现一些常用的编辑功能,可打开并显示TXT文件,并且可以将编辑结果保存为TXT文件。本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 菜单栏中有“文件”,“编辑”,“字体”三个主菜单。 “文件”菜单有“新建”,“打开”,“保存”三个菜单项:分别用于新建文件,打开文件,保存文件。 “编辑”菜单中有 “复制”“剪切”“粘贴”“查找”“替换”五个菜单项:用于实现复制所选文字,剪切所选文字,粘贴文字,查找,替换等功能。 “字体”中有“格式”一个菜单项:用来控制文本框中文本的字体类型功能; 软件功能架构图:设置热键格式替换查找粘贴剪切复制新建打开保存文件编辑字体菜单项文本编辑器3. 论述界面设计过程,指出其设计上的创意及组件的布局策略。这个框架主要运用盒子布局对象和grid布局对象操作。对于文本编辑器的菜单组件如下。“文件”菜单里: “编辑”菜单里 “字体”菜单里 4. 论述程序逻辑的实现,包括类的设计、对象的协作过程等,必要时加以各种图形和表格辅助论述。不得以粘贴代码的方式代替设计部分。 首先,自定义一个editor类,该类继承了JFrame类和ActionListener、ItemListener接口。在主类的主方法中,用editor创建一个对象bianji。在editor的构造方法中设计好第一个界面的布局和组件。设计一个菜单条组件,添加“文件”、“编辑”、“格式”三个菜单,“文件”菜单下又添加“新建”、“打开”、“保存”菜单项;在“编辑”菜单下又添加“复制”、“粘贴”、“剪切”、“查找”、“替换”菜单项;在“格式”下又添加“字体”菜单项。所有菜单项都添加ActionListener监视器,在editor中重写public void actionPerformed(ActionEvent e)方法。由于添加了ActionListener监视器的菜单项很多,当它们被点击时都会触发系统自动生成ActionEvent对象,event对象会自动调用editor里面的actionPerformed方法,对触发进行反应处理,为了能对不同的菜单项点击有不同的反应,那么要在actionPerformed方法中对事件源进行区分判断,从而不同的事件源有不同的反应,所以在actionPerformed中用e.getSource对事件源进行判断,用if else结构进行不同的事件源不同的处理方法。自定义newfile()、openfile()、savefile()方法,对应“新建”、“打开”、“保存”三个事件源的处理。在openfile()中,新建一个文件对话窗口showOpenDialog,建立一个文件字节输入流和缓冲输入流,缓冲输入流按行读取文件内容,然后添加到文本区中。在savefile()中,新建一个文件对话框showSaveDialog,建立一个文件字节输出流和缓冲输出流,把文本区的字符串写到用户选择的文件中。在newfile()方法中,先调用savefile()方法,把用户当前正在编辑的文本保存好先。用户保存后再让文本区组件调用setText()方法把文本内容设置为null。从而达到清理文本区的效果。对应“复制”、“粘贴”、“剪切”菜单项,添加调用文本区的copy()、paste()、cut()方法,把文本区的内容复制到系统粘贴板,把粘贴板的内容粘贴到文本区。事件源是“查找”菜单项时,新建一个窗口,新窗口添加“查找”按钮,和一个文本框,用来输入要查找的内容。按钮添加ActionListener监视器。点击“查找”按钮后,用户在文本框输入文本,文本框调用getText()方法读取字符串作为模式对象,建立一个匹配对象,文本区调用getText()方法得到字符串,匹配对象调用find()方法在文本区字符串中查找模式对象中的字符串,找到后,匹配对象再调用start()、end()方法,得到文本区字符串中与模式对象匹配的子字符串序列的开始位置和终止位置。文本区再调用select()方法把文本区的子字符串显示出来。倘若没有找到要查找的内容,则会弹出一个警告窗口。点击“替换”菜单项后,新建一个新窗口,添加“替换”按钮和两个文本框,一个用来输入替换前的内容,一个用来输入替换后的内容。当用户在文本框中输入替换前的内容,该内容的字符串作为模式对象,建立一个匹配对象,匹配对象调用find()方法,找到文本区中的子字符串,然后文本区再调用replaceRange()方法替换文本,replaceRange()中参数是用户输入的替换后的字符串、子字符串的开始位置、子字符串的终止位置。倘若在文本区中没有找到要替换前的文本内容,那么将弹出一个警告窗口。“字体”菜单项是个下拉列表,添加ItemListener监视器,用GraphicsEnvironment 对象ge=GraphicsEnvironment.getLocalGraphicsEnvironment();得到电脑系统里的所有字体类型,ge对象调用方法getAvailableFontFamilyNames()得到字体类型的名字,并把名字存放到字符串数组中,然后下拉列表组件添加字符串数组中的字体类型名字。当用户在下拉列表中选择了一个字体时,触发ItemEvent事件对象,事件对象通知监视器,监视器实现接口回调,接口中自定义了方法,设置一个字体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省红河县2025年上半年事业单位公开遴选试题含答案分析
- 云南省富源县2025年上半年事业单位公开遴选试题含答案分析
- 河北省邯郸县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版社保缴纳与职工工资待遇挂钩补充协议
- 2025年点工合同范本:现代服务业合作协议
- 2025年地产项目合作合同:产业园区合作开发协议
- 2025版塔吊租赁及操作人员资质认证合同
- 2025房产中介合同(含房屋装修监理)
- 2025年智能制造系统集成服务合同
- 2025版大型吊车租赁及工程进度跟踪合同
- 石油钻采设备与工具专业标准分类
- 中式烹调师高级技师试题与答案
- GB/T 39725-2020信息安全技术健康医疗数据安全指南
- GB/T 3622-1999钛及钛合金带、箔材
- GB/T 20160-2006旋转电机绝缘电阻测试
- FZ/T 73044-2012针织配饰品
- 全套课件:机械基础
- 组织工程及再生医学基本课件
- 智慧矿山为未来煤矿发展赋能课件
- 旅游相册:宁夏旅游课件
- 药物化学(全套课件)
评论
0/150
提交评论