当前位置:文档之家› java文本编辑器实验报告

java文本编辑器实验报告

Java考核
课程名称Java程序设计
题目名称文本编辑器的设计与实现学生学院计算机学院
专业班级计算机17(2)班
学号**********
学生姓名李泽豪
指导教师赵锐
2018 年12 月11 日
一、课程题目
编程实现一个文本编辑器
使其具有新建、打开、保存,编辑(查找、替换、大小写转换等)、统计(字数、行数、字符数等)、格式(字体设置、字体大小、字体颜色、背景颜色等)等功能。

要求:基于JFrame窗体设计、使用菜单进行功能选择。

提示:字体颜色,背景颜色的设置,可使用javax.swing包中的JColorChooser类的静态方法showDialog()调用标准颜色对话框来完成;文件操作可通过javax.swing包中JColorChooser类中的showSaveDialog()、showOpenDialog()方法调用标准的的文件对话框来完成。

二、题目分析与设计
2.1开发环境
使用Eclipse开发软件
2.2需求分析
简单的文本编辑器提供给用户基本纯文本的文字编辑功能,能够读取计算机本地磁盘中的文本内容,将用户文本导入到磁盘中之中,以及实现基本的字体设置(字体,字号,字体颜色)简单的编辑字体的功能,以及统计(字数,行数,字符数),增强视觉体验的背景颜色功能等,简单而实用。

而网络上的各种编辑器,有的功能不足(如自带的记事本),而有些编辑器功能太繁杂,仅以日常应用方面来说,一个文本编辑器只需要简单的功能就够了。

2.3功能构架
本程序要构建的文本编辑器按照题目要求,分为四个方面:
(1)“文件”菜单:包括“新建”并提示是否保存已编辑内容,“打开”计算机本地磁盘的文本文件,主动“保存”自己已经编辑好的内容到电脑的磁盘或“另存为”新的文件之中,以及“退出”并提示是否保存已编辑的内容。

(2)“编辑”菜单:包括对已编辑文本的一个“查找与替换”功能,对已编辑英文文本的一个“大小写转换”功能。

(3)“格式”菜单:实现对文本的“字体”设置,“字体大小”以及“字体颜色”,还有
能优化视觉体验的“背景颜色”的改变。

(4)“统计”菜单:实现对中文字符的“字数”统计,以及“行数”的统计,“字符数”的统计。

以下是软件功能的构架图:
2.4界面设计
整个文本编辑器分成:JFrame程序主体框架,Jmenu菜单栏,JTextArea文本输入区,JscrollPane滚动条,FonDialog字体,JDiolog对话框与框架等。

首先定义一个TxtEditor类继承JFrame作为最底层容器,因为是编辑器,所以最重要的是使用JTextArea建立一个空白的文本域,还有顶部根据功能分成四类的菜单栏以及其中的菜单项,以及考虑到文本输出超过所示范围所需要滑动因此而添加的滚动条。

在查找与替换功能,为了使用方便,合并查找与替换功能在同一个对话框。

创新:考虑到使用者会不小心按到关闭按钮,所以添加了一个退出监听,JOptionPane 导入类确定对话框,“否”会.返回,“是”会弹出文件保存界面,操作之后会退出。

在字体、字体大小的处理中,也采用了JOptionPane导入类的输入对话框,输入自己想要的字体或者字体大小按“确定”键就能完成更改,使得可选择的字号和字体会更多。

2.5程序的实现
(1)菜单的制作
首先定义所有菜单项(例:JMenuItem itemBuilt = new JMenuItem("新建");),创建菜单条及置于顶部(JMenuBar menubar = new JMenuBar(); this.setJMenuBar(menubar);
menubar.setOpaque(true);),添加菜单栏及菜单项(例:JMenu menuFile = new JMenu("文件");menuFile.add(itemBuilt);)
要进行操作就要添加监听(例:itemBuilt.addActionListener(this);),然后对这一监听进行方法的重写(例:public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (e.getSource() instanceof JMenu)
;
{
if (e.getSource() == itemBuilt) {
builtfile();
})
然后public一个对应的函数(例:
public void builtfile() {
savefile();
wen.setText(null);
fileName = "";
})
(2)打开/保存/另存为/退出
通过FileDialog文件处理对话框对文件进行读取及保存,通过识别fileName是否为空确定文件是否保存过来确定是否弹出保存窗口。

退出时通过添加窗口监听addWindowListener来监听退出,从而添加JOptionPane导入类确定框,确定后弹出保存对话框操作后实现退出。

(3)查找与替换
创建一个MyJDialog继承JDialog临时对话框类,识别想查找的内容及长度,输入为空或无此字符会有反馈。

使用indexof查找内容,用select选择住查找的内容,使用replace对内容进行替换。

(4)大小写转换
获得文本内容,然后使用toUpperCase和toLowerCase方法实现大小写转换。

(5)字体设置及背景颜色
字号及字体用JOptionPane.showInputDialog获取接下来用户输入的内容(字号或字体),代入font(””,font.plain,n)来修改文本的格式;颜色通过JColorChooser进行选择,使用setBackground,setForeground方法作用在文本域和字体上。

(6)统计
分别通过getLineCount,getText().length()方法,以及正则表达式对文本进行进行统计,以消息对话框展示。

三、测试分析
(1)新建
点击“新建”会弹出保存对话框,不管是否保存都会完成新建,清除已有的内容
(2)打开
弹出打开对话框并能实现打开文本文件
(3)保存(另存为…)
对已经保存过的文件点击“保存”会直接保存到上次的文件中,“另存为”则再次打开保存对话框重新选择
(4)退出(关闭)
弹出导入类选择对话框,点击“是”弹出保存对话框,“否”则取消退出
(5)查找与替换
再次点击“查找”可查找下一个
(6)大小写转换
(7)字体格式
通过输入来更改文字字体的样式,字号,用颜色对话框完成对文字,背景颜色的更改
(8)统计
以上是文本编辑器的测试情况,基本符合预计的结果。

四、设计体会
首先在总体函数实现方面,为避免直接使用一些方法而出现困难错乱,采用点击监听并
重写方法,再对每一个板块的方法进行定义调用,让我体会到许多功能实现工程的制作也可以使用这种方法,定义框架再对每一个部分进行单独的操作。

在字体设置板块,使用的方法是用户自主输入,可改变的字号和字体会和系统有的字体同步,会避免出现陈列选择的代码过于复杂,以及增大可选择可改变的空间。

体会到设计过程中不一定要循规蹈矩按照他人的思路去做,要有属于自己独特的想法去做,才能做出一个比较符合自己心水的东西。

附录:源代码。

相关主题