1、 虚拟的虚拟的 Java 编辑器设计报告编辑器设计报告 一、需求分析一、需求分析 此次课程设计名称为 JAV A 编辑器。需要设计一个图形界面的文本编辑器,能编辑 Java 语言源程 序,界面和功能类似 Editplus。 演示程序为计算机和用户的对话形式执行,即在计算机的终端显示图形界面的文档编辑器,然后 用户就可以实现编辑,保存等像记事本一样的功能。 (1)打开以有文件,保存编辑文件,退出编辑器并提醒保存; (2)查找编辑区中的字符串,用已知字符串替换查找的字符串; (3)显示文件的存取路径; (4)剪切,复制,粘贴,删除等; (5)改变文本区字体的颜色,字体大小和形状的功能; (6)关键
2、字显示蓝色、类库类名显示红色。 二二. 设计设计 1. 设计思想 Java 编辑器是用来编写 java 程序的源代码。Java 程序编辑器是:图形界面、线程、流与文 件等技术的综合应用。 图形界面的实现:就选择了 swing 来完成实现,在选择组件上,文本编辑区就选用了 JTextPane 作为主要的部件。 由于 Java 的特性,可能用任何一个编辑器来编辑,于 是就将 Windows 中的记事本作为模仿对象,根据实现情况 删减了其中的一些功能,如自动换行,设置字体,打印等功 能。在设计类的时候,考虑到简单明了,一个主类,一个默 认属性 myfr 类,染色类 SyntaxHighlighter
3、 作为程序的整体 框架, 所有的对象和方法都是在默认属性类和染色类中创建 和实现的, 以及为各组件注册事件监听程序也是在默认属性 类染色类中实现的。本程序主类完成对象的实例化及显示。 2. 功能设计 本程序涉及到了对图形用户界面的设计与实现和菜单 的设计与实现。用户可以通过此编辑器对 java 文件进行文 字的复制、剪切、粘贴、删除、查找、替换、时间的插入、 设置字体颜色和关键字、类库名着色等。 本程序主要有以下 3 个模块组成: (1)主体模块 由窗口、功能菜单、文本框组成。为用户选择编辑的功 能提供了简单、方便的界面。Java 的窗口由 JFrame 类生成, 我们可以在创建的空白窗口上添
4、加组件。 菜单是图形用户界 面的重要组成部分, 是由菜单条 (MenuBar) 、 菜单 (Menu) 、 菜单项(MenuItem)和复选菜单项(Checkbox MenuItem) 等对象组成。 (2)功能模块 有文件的新建、打开、保存、另存为和退出,文字的复 制、剪切、粘贴、删除、查找、替换、以及时间的插入,为 用户提供了 java 编辑器的基础功能。 (3)染色模块 关键字显示蓝色, 类库名显示红色。 实现高亮子的核心 方法 StyledDocument.setCharacterAttributes(int offset, int length, AttributeSet s, boo
5、lean replace) 3. 详细设计 本设计主要是模仿 windows 记事本界面,主要的难点是 关键字染色算法和查找替换算法。 其他的部分相对简单, 主 要就是一些容器组件的组合, 布局的设置。 主要的功能都在 myfr 类中实现的。 Java 中提供的多行文本编辑器有: JTextComponent, JTextArea, JTextPane, JEditorPane 等, 都可以使用但是因 为语法着色中文本要使用多种风格的样式, 所以这些文本 编辑器的 document 要使用 StyledDocument. JTextArea 使 用的是 PlainDocument, 此 doc
6、ument 不能进行多种格式的 着色.JTextPane, JEditorPane 使用的是 StyledDocument, 默认就可以使用. 为了实现语法着色, 可以继承自 DefaultStyledDocument, 设置其为这些文本编辑器的 documet, 或者也可以直接使 用 JTextPane, JEditorPane 来做. 为了方便, 这里就直接使 用 JTextPane 了 (1)主类 class ok 实例化初始化窗口 (2)主窗口体类 class myfr 字体类 class MyFont (3)染色类 class SyntaxHighlighter (4)鼠标右键弹出菜单类 class handlemouse (5)帮助主题类 class myhelp (6)关闭窗口 XXX 类 class xxx (7)关闭帮助主题窗口类 class xxxhelp 三三. 调试及测试调试及测试 1. 调试过程中遇到的主要问题及解决方法 开始把染色类写在 myfr 中,结果出现继承错误,只好把染色 类写在 myfr 之外,通过引用实现类与类联系。在开始设置字 体颜色是出现