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