文本编辑器的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院
课程设计报告书
课程名称
设计题目文本编辑器的设计与实现
专业班级 XXXXXXXXXXX 学号 xxxxxxxxxx 姓名 xxx 指导教师
2011 年11月
1 设计时间
2011年11月
2 设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。目前文本编辑器种类很多,所提供的功能也很多,但是能满足用户实现多种功能和进行Java的编译与运行很少,不能更好的适应当前用户的要求。本设计所完成的文本编辑器功能是针对学习Java程序语言,因此我们利用Java程序设计虚拟机和软件对用户及使用者的应用过程形成一整套完整的编写代码,编译,运行。
3设计任务
文本编辑器的设计与实现:设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。
4 设计内容
4.1需求分析
需求分析的任务是确定功能必须完成的工作,也就是对目标系统提出完整、准确、清晰、具体的要求。简单文本编辑器提供给用户基本的纯文本编辑功能,能够将用户录入的文本存储到本地磁盘中。能够读取磁盘中现有的纯文本文件,以及方便用户进行需要的编辑功能。文件操作能够实现新建、保存、打开文档等,编辑操作能过实现文本的剪贴、复制、粘贴等,格式操作能过实现字体设置、背景等,帮助操作能够实现关于主题的查看等功能。
4.2概要设计
4.2.1程序基本功能概括
图4.2.1 功能架构图4.2.2程序主要组件概括
1.基本的Frame框架;
2.菜单;
3.打开文件对话框;
4.保存文件对话框;
5.颜色对话框;
6.Choice下拉列表,运来实现字体设置;
7.简单的帮助框架。
4.3详细设计
4.3.1文件打开与保存
文本编辑器的保存和打开功能的实现用文件对话框及输入输出流来完成。先建立打开和保存对话框,在public void actionPerformed(ActionEvent e)里分别用FileWriter()和FileReader()方法实现保存和打开。
filedialog_save=new FileDialog(this,"保存文件对话框",FileDialog.SA VE);
filedialog_save.setVisible(false);
filedialog_load=new FileDialog(this,"保存文件对话框",FileDialog.LOAD);
f iledialog_load.setVisible(false);
filedialog_save.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_save.setVisible(false);
}
});
filedialog_load.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
filedialog_load.setVisible(false);
}
});
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==itemSave)
{
filedialog_save.setVisible(true);
if(filedialog_save.getFile()!=null)
{
try {File file=new
File(filedialog_save.getDirectory(),
filedialog_save.getFile());
tofile=new FileWriter(file);
out=new BufferedWriter(tofile);
out.write(area.getText(),0,(area.getText()).length());
out.close();
tofile.close();
}
catch(IOException e1) {}
}
}
else if(e.getSource()==itemLoad)
{
filedialog_load.setVisible(true);
area.setText(null);
String s;
if(filedialog_load.getFile()!=null)
{
try{File file=new
File(filedialog_load.getDirectory(),
filedialog_load.getFile());
file_reader=new FileReader(file);
in=new BufferedReader(file_reader);
while((s=in.readLine())!=null)
area.append(s+'\n');
in.close();
file_reader.close();
}
catch(IOException e1) {}
}