《Java语言》课程期末作业
题目第8题,文本编辑器
学院计算机学院
专业计算机科学与技术
班别
学号
姓名
2010年12月11日
一、课程题目
制作一个简单的文本编辑器,交互性要求:
(1) 可输入文字(仅要求英文及标点符号)
(2) 实现一些常用的编辑功能:如复制和粘贴,查找和替换,首字母自动大写,拼写自动更正……
(3) 可打开并显示TXT文件,并且可以将编辑结果保存为TXT文件
二、题目分析与设计
1. 所使用的开发环境:Eclipse
2. 论述题目的需求。
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
①菜单栏中有“文件”,“编辑”,“格式”“关于”四个主菜单。
②“文件”菜单有“打开”“保存”“另存为”“退出”四个菜单项:分别用于打开文件,保存文件,另存为文件,退出记事本。
③“编辑”菜单中有“剪切”“复制”“粘贴”“查找”“替换”“全选”五个菜单项:用于实现剪切所选文字,复制所选文字,粘贴文字,查找,替换和文本的全选等功能。
④“格式”中有“字体”“自动换行”两个菜单项:用来实现对文本的字体设置(包括字体的颜色、大小、风格)和自动换行这两个功能;
⑤“关于”菜单中有“基本资料”菜单项:用于输出文本编辑器程序的作者的信息。
软件功能架构图。
文本编辑器
“格式”菜单
“编辑”菜单
替换
新建
“关于”菜单
保存
打开
另存为
退出
“文件”菜单
查找
黏贴
复制
剪切
字体
自动换行
基本资料
全选
3. 论述界面设计过程,指出其设计上的创意及组件的布局策略。
这个简单文本编辑器的设计可分为下面的六个部分来分析:
⑴简单框架的建立
第一步就是建立框架,我直接利用所建TextEditor主类直接继承JFrame,这个框架类包含了一个构造器(设置了框架的大小)ponents() 方法(用于初始化各个组件),ponents() 方法里利用setTitle方法为框架添加了标题——“简单文本编辑器”。
第二步利用addWindowListener添加这个框架的事件监听器(主要是当鼠标点击关闭按钮时实现框架的关闭)。
第三步就是往这个框架添加JScrollPane滚动板,这是为了实现当文本区域大小超过框架大小时,就出现了滚动条。
⑵添加编辑区
在第一部分中已经建立了一个带有滚动条的框架,接下来,我们利用JTextArea类建立一个文本域对象,并且添加进框架里。同时,利用getDocument().addDocumentListener方法为文本域添加一个文档事件监听器,主要是为了实现当文本域里面有改动时,就设置changed这个boolean变量(判断是否有改动)为真。
⑶添加菜单
对于这个简单文本编辑器它的菜单组件如下
“文件”菜单里:
“编辑”菜单里
“格式”菜单里
“关于”菜单里
首先,在主类TextEditor的类成员变量定义里,利用JMenuBar定义一个菜单里,利用JMenu定义“文件”、“编辑”等菜单,利用JMenuItem定义“新建”、“打开”、“复制”、“黏贴”等菜单项,利用JSeparate定义菜单分隔条变量,利用JCheckBoxMenuItem定义一个有选项勾的“自动换行”菜单项。
第二步,ponents()方法里创建这些选项对象。
第三步,elerator((,
))为有需要的选项添加快捷键。
第四步,利用addActionListener方法添加菜单响应事件,每个菜单项关联到各自独立的事件监听器。
第五步,把所有菜单项添加到相应的菜单上,再把每个菜单添加到菜单栏,最后把菜单栏添加进框架里面,最终效果就如下图所示:
⑷编写事件相应代码
以“新建”菜单项为例,在它的监听器中设置了该菜单项的动作响应函数为:newMenuItemActionPerformed()。在TextEditor类中,必须编写该函数的代码。否则,菜单也是什么也不做。
⑸创建Search类、Replace类以及FontForm类
以Search类为例。Search类实现“查找”功能,由于在实现查找功能时,要调出相应的对话框,需要重新创建一个JFrame框架,并且框架里面的按钮需要关联到相应的事件监听器上,所以比较复杂。所以不在TextEditor类里面定义,我们另外创建一个类,由TextEditor类调用。
⑹完善文本编辑器菜单系统
以“保存”菜单项为例。因为保存时,需要判断当前文本域里的文件是否有文件名,如果有文件名就执行保存操作,若没有
JAVA课程设计 - 文本编辑器 来自淘豆网m.daumloan.com转载请标明出处.