记事本程序说明书.docx
- 文档编号:6124206
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:17
- 大小:231.71KB
记事本程序说明书.docx
《记事本程序说明书.docx》由会员分享,可在线阅读,更多相关《记事本程序说明书.docx(17页珍藏版)》请在冰豆网上搜索。
记事本程序说明书
*******************
实践教学
*******************
理工大学
计算机与通信学院
2012年秋季学期
Java课程设计
题目:
记事本程序
专业班级:
软件基地班
姓名:
学号:
指导教师:
成绩:
摘要
本次课程设计的题目是用JAVA语言编写记事本程序,要:
用图形界面实现;含有简单的文字编辑功能,如:
剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
本程序主要用到了Javaswing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
分别对每个事件定义事件监听器。
然后在实现相应的方法。
关键词:
记事本程序;Java语言;swing组件
序言
Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。
面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,使我们能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。
通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Eclipse等开发工具的运用,拓宽常用类库的应用。
使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。
第一章分析与设计
一、课程设计目的
设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:
剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
二、课程设计问题
设计题目:
记事本程序
设计思路:
首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。
通过文件类型知识的应用,实现对记事本程序的管理。
三、概要设计
面板设计:
首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;
(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:
用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
(4)“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。
第二章详细设计
1、jishiben类的实现
Filefile=null;//定义一个空文件
privateJLabelstateBar;//定义一个标签
privateJTextAreatext;//定义编辑区
privateJMenuBarmb;//定义菜单栏
privateJMenufiles,edit,help;//定义菜单
privateJMenuItemOpen,New,Save,SaveAs,Exit,Cut,Copy,
Paste,Delete,Find,Replace,SelectAll,About;//定义菜单项
2、GUI程序界面设计
files.add(New);publicjishiben(){//构造函数
super("记事本");//菜单栏
mb=newJMenuBar();
/*****菜单栏的各个菜单项*****/
files=newJMenu("文件");
edit=newJMenu("编辑");
help=newJMenu("帮助");
/*****“帮助”菜单项的下拉菜单******/
About=newJMenuItem("关于记事本");
/*****“文件”菜单项的下拉菜单*****/
Open=newJMenuItem("打开");
New=newJMenuItem("新建");
Save=newJMenuItem("保存");
SaveAs=newJMenuItem("另存为");
Exit=newJMenuItem("退出");
/******编辑菜单的四个下拉菜单*****/
Cut=newJMenuItem("剪切");
Copy=newJMenuItem("复制");
Paste=newJMenuItem("粘贴");
Delete=newJMenuItem("删除");
Find=newJMenuItem("查找");
Replace=newJMenuItem("替换");
SelectAll=newJMenuItem("全选");
stateBar=newJLabel("未修改");//添加标签
stateBar.setHorizontalAlignment(SwingConstants.LEFT);
stateBar.setBorder(BorderFactory.createEtchedBorder());
mb.add(files);//添加控键
mb.add(edit);
mb.add(help);
files.add(Open);
files.add(Save);
files.add(SaveAs);
files.addSeparator();//分隔线
files.add(Exit);
edit.add(Cut);
edit.add(Copy);
edit.add(Paste);
edit.add(Delete);
edit.addSeparator();//分隔线
edit.add(Find);
edit.add(Replace);
edit.addSeparator();//分隔线
edit.add(SelectAll);
help.add(About);
setJMenuBar(mb);
text=newJTextArea();
add(newJScrollPane(text));//滚动面板
setSize(600,500);//设置窗口大小
setVisible(true);//使窗口显示
3、程序流程图
(1)、主流程图
(2)、“文件”菜单操作流程图
(3)、“编辑”菜单操作流程图
(4)、“帮助”菜单操作流程图
4、事件处理
4.1编辑区键盘事件处理
text.addKeyListener(
newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
processTextArea();
}
}
);
4.2窗口事件处理
ClasswindowListenerextendsWindowAdapter{publicvoidwindowClosing(WindowEvente){
close();
}
}
4.3菜单项事件处理
classactionListenerimplementsActionListener{publicvoidactionPerformed(ActionEvente){
JMenuItemmi=(JMenuItem)e.getSource();
if(mi==New){//新建文件
text.setText("");
file=null;
}
elseif(mi==Exit){//退出
close();
}
elseif(mi==Cut){//剪切
stateBar.setText("已修改");
text.cut();
}
elseif(mi==Copy)//复制
text.copy();
elseif(mi==Paste){//粘贴
stateBar.setText("已修改");
text.paste();
}
elseif(mi==SelectAll)//全选
text.selectAll();
elseif(mi==Delete){//删除
stateBar.setText("已修改");
intstart;
intend;
start=text.getSelectionStart();
end=text.getSelectionEnd();
text.replaceRange("",start,end);
}
elseif(mi==Open){//打开
JFileChooserjf=newJFileChooser();//创建打开文件对话框
if(file!
=null)
jf.setSelectedFile(file);
intreturnVal=jf.showOpenDialog(jishiben.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=jf.getSelectedFile();
unfold();
}
}
elseif(mi==About){//关于
Stringmessage="----记事本----"
+"感您的使用!
";
JOptionPane.showMessageDialog(jishiben.this,message,"关于...",JOptionPane.PLAIN_MESSAGE);
}
elseif(mi==Save)//保存
save();
elseif(mi==SaveAs){//另存为
JFileChooserjf=newJFileChooser();
if(file!
=null)
jf.setSelectedFile(file);
intreturnVal=jf.showSaveDialog(jishiben.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=jf.getSelectedFile();
save();
}
}
elseif(mi==Find){//查找
FindAndReplacefr=newFindAndReplace();
fr.setVisible(true);
fr.setLocation(getLocation());
}
elseif(mi==Replace){//替换
FindAndReplacefr=newFindAndReplace();
fr.setVisible(true);
fr.setLocation(getLocation());
}
}
}
第三章系统测试
(1)程序运行界面如下:
(2)“文件”菜单的菜单项:
(3)“编辑”菜单的菜单项:
(4)打开文件及另存文件时的界面:
由于打开文件和另存文件都要寻找路径,所以开始时界面相同。
(5)打开了某一个文本文件是的截图:
(6)使用查找替换时的截图:
在“查找容”的框输入查找的容,再按“查找下一个”这个按钮就可以查找。
如果要替换所查找的容,就在“替换字串”的框输入要替换成的容。
如图中就是把“风水”替换“风”。
(7)记事本关闭或退出时的截图:
当文件发生了剪切、删除、粘贴等操作,或者在编辑区中输入了字符,即文件进行了修改,当点击“文件”菜单中的“退出”项或者点击了窗口的关闭按钮时,就会弹出一个“保存文件?
”的对话框。
如果文件没有发生修改,关闭或者退出时,直接关闭了记事本程序。
由于其他的操作在截图里很难发现什么变化,所以只展示了上面的截图。
第四章软件使用说明书
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;
(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”五个子菜单,分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
其中文件另存为时应选择保存路径。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:
用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
(4)“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。
注:
在用户退出记事本程序时可通过“文件退出”功能和直接关闭记事本对话框。
当文件被修改时,将有是否保存对话框。
用户可选择“是”,“否”。
设计总结
在经过了将近两周的Java课程的学习之后,对于Java这门优秀的编程语言有了更深层次的认识。
在学习的过程中,通过朱老师的教学指导、课外对相关知识的阅读和上机实际操作,对于它所具有的面向对象、与平台无关、安全、稳定和多线程等特点,有了更深刻更直观的认识和理解。
因为对相关知识理解得还不是很透彻。
致使在这次课程设计的过程中,遇到了很多问题。
诸如,监控的定义:
是否可以在一个监控器里再次添加一个监控器。
还有menubar中不可以添加button按钮以及也不可以添加scrollpane按钮。
可以说,这次课设的过程是个很艰辛的过程。
不过在设计的过程中,我收获了很多。
从选择课程设计的题目开始,到需求分析,开发工具的选择,最终到系统的设计思路,关键代码的设计,每一步都认真思考分析完成。
有点遗憾的是,起初在设计时原本打算能更加完善一些功能的设计,但因为确实有难度就此作罢。
在以后的学习中,我会进一步加深对于JAVA的理解和使用,通过阅读相关知识拓宽自己对于JAVA的了解。
参考文献
1]曲,杰明等.Java程序设计.:
清华大学,2008.10
[2]耿祥以,跃平.Java大学生实用教程.:
电子工业,2012.6
[3]明日科技.Java经典编程.:
清华大学,2012.10
[4]尊朝,军.Java语言程序设计.:
中国铁道,2004.2
[5]王博.面向对象的建模、设计技术与方法.希望电脑公司,1990.
致
在这次课程设计中,很感朱老师的指导,将我从对于JAVA肤浅的认识引入到深层次的分析理解。
我能用Java这一种语言进行比较熟练的编程。
同时还感其他帮助过我的同学,他们给了我很多的建议和帮助。
才使得这次课程设计得以顺利的完成。
天下无难事,只怕有心人。
通过这次课设自己也学到了很多东西。
虽然这次课设并不是我一个人独立完成的,我也参考了一些相关的资料。
查阅了很多的方法。
也向JAVA学习得好的同学请教过。
我在这里感他们的帮助,没有他们的帮助也没有我今天的课设。
同时也非常感给我们任课的王老师,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 记事本 程序 说明书