记事本课程设计源代码最后Word文档格式.docx
- 文档编号:18725618
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:25
- 大小:229.35KB
记事本课程设计源代码最后Word文档格式.docx
《记事本课程设计源代码最后Word文档格式.docx》由会员分享,可在线阅读,更多相关《记事本课程设计源代码最后Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
分析设计准备
周一
2
编程调试阶段
周二至周三
3
编写课程设计报告
周四
4
考核
周五
总计
5(天)
指导教师(签字)
日期
教研室意见:
学生(签字):
接受任务时间:
年月日
注:
任务书由指导教师填写。
摘要
随着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。
JAV是实践性很强的课程。
课程设计师加强实践能力的一个强有力的手段。
要求掌握JAVA的应用、编写、上机调试的基本方法。
本次课程设计的题目是用模拟Windows的记事本程序,编写一个记事本。
要求具备基本的编辑、复制、粘贴、剪切、保存文件等功能。
本程序主要用到了Javaswing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
关键词:
记事本程序;
Java语言;
swing组件
目录
1问题描述3
2需求分析3
3概要设计3
3.1自定义类说明...3
3.2程序流程图4
4详细设计7
4.1jishiben类的实现7
4.2GUI程序界面设计7
4.3事件处理9
5测试分析12
6课程设计总结16
6.1设计体会16
6.2致谢16
参考文献17
附录(源程序清单)18
1问题描述
设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:
剪切、复制、粘贴、删除;
还能实现保存、另存为、查找、替换等功能。
这次课程设计由卢炜、刘秀春、伍霜霜和我四个人合作完成。
卢炜负责概要设计,刘秀春负责4.1jishiben类的实现和4.2GUI程序界面设计,伍霜霜负责5测试分析。
由于4.3事件处理和撰写程序关系密切,这两项都由我负责。
并且根据伍霜霜的测试的结果重新调整程序。
2需求分析
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
(1)、菜单中有“文件”、“编辑”、“帮助”三个主菜单;
(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:
用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件。
(4)“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。
3概要设计
3.1自定义类说明
3.1.1类名:
jishiben
(1)作用:
主类
(2)继承的父类:
JFrame类
(3)实现的接口:
windowListener类与actionListener类
(4)成员变量说明:
Filefile=null;
//定义一个空文件
privateJLabelstateBar;
//定义一个标签
privateJTextAreatext;
//定义编辑区
privateJMenuBarmb;
//定义菜单栏
privateJMenufiles,edit,help;
//定义菜单
privateJMenuItem
Open,New,Save,SaveAs,Exit,Cut,Copy,Paste,Delete,Find,Replace,SelectAll,About;
//定义菜单项
(5)主要成员方法说明:
编辑区键盘事件:
KeyListener类如果记事本的编辑区内用键盘输入了字符,就能够被程序监听;
窗口的事件监听:
windowListener类;
菜单项的事件监听:
ActionListener类;
3.2程序流程图
3.2.1主流程图
3.2.2“文件”菜单操作流程图
3.2.3“编辑”菜单操作流程图
3.2.4“帮助”菜单操作流程图
4详细设计
4.1jishiben类的实现
//定义菜单
privateJMenuItemOpen,New,Save,SaveAs,Exit,Cut,Copy,
Paste,Delete,Find,Replace,SelectAll,About;
4.2GUI程序界面设计
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(New);
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.add(SelectAll);
help.add(About);
setJMenuBar(mb);
text=newJTextArea();
add(newJScrollPane(text));
//滚动面板
setSize(600,500);
//设置窗口大小
setVisible(true);
//使窗口显示
4.3事件处理
4.3.1编辑区键盘事件处理
text.addKeyListener(
newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
processTextArea();
}
}
);
4.3.2窗口事件处理
ClasswindowListenerextendsWindowAdapter{publicvoidwindowClosing(WindowEvente){
close();
}
}
4.3.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){//粘贴
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="
----记事本----"
+"
作者:
刘尊志\n感谢您的使用!
;
JOptionPane.showMessageDialog(jishiben.this,message,"
关于..."
JOptionPane.PLAIN_MESSAGE);
elseif(mi==Save)//保存
save();
elseif(mi==SaveAs){//另存为
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){//替换
}
5测试分析
(1)程序运行界面如下:
(2)“文件”菜单的菜单项:
(3)“编辑”菜单的菜单项:
(4)打开文件及另存文件时的界面:
由于打开文件和另存文件都要寻找路径,所以开始时界面相同。
(5)打开了某一个文本文件是的截图:
(6)使用查找替换时的截图:
在“查找内容”的框内输入查找的内容,再按“查找下一个”这个按钮就可以查找。
如果要替换所查找的内容,就在“替换字串”的框内输入要替换成的内容。
如图中就是把“风水”替换“风”。
(7)记事本关闭或退出时的截图:
当文件发生了剪切、删除、粘贴等操作,或者在编辑区中输入了字符,即文件进行了修改,当点击“文件”菜单中的“退出”项或者点击了窗口的关闭按钮时,就会弹出一个“保存文件?
”的对话框。
如果文件没有发生修改,关闭或者退出时,直接关闭了记事本程序。
由于其他的操作在截图里很难发现什么变化,所以只展示了上面的截图。
6课程设计总结
6.1设计体会
在经过了将近八周的Java课程的学习之后,对于Java这门优秀的编程语言有了更深层次的认识。
在学习的过程中,通过老师的教学指导、课外对相关知识的阅读和上机实际操作,对于它所具有的面向对象、与平台无关、安全、稳定和多线程等特点,有了更深刻更直观的认识和理解。
这次课程设计我主要负责4.3事件处理和撰写程序,但因为学习时间不长,对相关知识理解得还不是很透彻。
致使在这次课程设计的过程中,遇到了很多问题。
诸如,监控的定义:
是否可以在一个监控器里再次添加一个监控器。
还有menubar中不可以添加button按钮以及也不可以添加scrollpane按钮。
可以说,这次写论文的过程是个很艰辛的过程。
不过在设计的过程中,我收获了很多。
从选择课程设计的题目开始,到需求分析,开发工具的选择,最终到系统的设计思路,关键代码的设计,每一步都认真思考分析完成。
有点遗憾的是,起初在设计时原本打算能更加完善一些功能的设计,但因为确实有难度就此作罢。
在以后的学习中,我会进一步加深对于JAVA的理解和使用,通过阅读相关知识拓宽自己对于JAVA的了解。
6.2致谢
在这次课程设计中,很感谢梁老师的指导,将我从对于JAVA肤浅的认识引入到深层次的分析理解。
还感谢我们的任课老师顾老师,由于她的悉心教导,我能用Java这一种语言进行比较熟练的编程。
还感谢和我一起做这次课程设计的组员卢炜、刘秀春、伍霜霜,由于我们的通力合作,这次课程设计得以顺利的完成。
参考文献
[1]孙全党,王吴迪,赵枫朝.Java程序设计应用教程[M].北京:
电子工业出版社,2006
[2]雷之宇.Java项目开发实践——网络篇[M].北京:
中国铁道出版社,2005
[3]赵玉阳.Java从入门到精通[M].北京:
清华大学出版社,2006
[4]李龙怡.Java编程实例讲解[M].北京:
高等教育出版社,2005
[5]李尊朝,苏军.Java语言程序设计[M].北京:
中国铁道出版社,2009
附录(源程序清单)
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
publicclassjishibenextendsJFrame{
Filefile=null;
privateJMenuItemOpen,New,Save,SaveAs,Exit,Cut,Copy,
publicjishiben(){//构造函数
//菜单栏
files=newJMenu("
//菜单栏的各个菜单项
About=newJMenuItem("
//“帮助”菜单项的下拉菜单
Open=newJMenuItem("
//“文件”菜单项的下拉菜单
//编辑菜单的四个下拉菜单
////添加控键
//滚动面板
New.addActionListener(newactionListener());
//监听器接口
Open.addActionListener(newactionListener());
Save.addActionListener(newactionListener());
SaveAs.addActionListener(newactionListener());
Exit.addActionListener(newactionListener());
Cut.addActionListener(newactionListener());
Copy.addActionListener(newactionListener());
Paste.addActionListener(newactionListener());
Delete.addActionListener(newactionListener());
Find.addActionListener(newactionListener());
Replace.addActionListener(newactionListener());
SelectAll.addActionListener(newactionListener());
About.addActionListener(newactionListener());
addWindowListener(newwindowListener());
text.addKeyListener(//编辑区键盘事件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 记事本 课程设计 源代码 最后