实现记事本功能模板.docx
- 文档编号:4717920
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:22
- 大小:277.20KB
实现记事本功能模板.docx
《实现记事本功能模板.docx》由会员分享,可在线阅读,更多相关《实现记事本功能模板.docx(22页珍藏版)》请在冰豆网上搜索。
实现记事本功能模板
数学与计算机工程学院
程序设计类课程设计报告
设计题目:
实现记事本功能
学生学号:
专业班级:
2012级计算机科学与技术一班
学生姓名:
学生成绩:
指导教师(职称):
(教授)
课题工作时间:
2013-12-9至2013-12-23
说明:
1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个学生。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。
答辩由指导教师实施。
4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设计的情况另行规定。
5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按不及格处理。
数学与计算机工程学院程序设计类课程设计任务书
学生姓名
学号
专业班级
2012级计科一班
设计题目
实现记事本功能
主要任务及设计要求:
任务:
<1>用图形界面实现;含有简单的文字编辑功能,如:
剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
要求:
1、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;
2、系统设计要实用,编程简练,可用,功能全面
3、记录设计情况(备查,也为编写设计说明书作好准备);
4、要求上机调试通过和按设计报告格式。
5、功能要求:
用图形用户界面实现。
6、能实现编辑、保存、另存为、查找替换等功能。
指导教师:
日期:
2013年12月9日
成绩评定表
学生姓名:
学号:
专业/班级:
2012级计科一班
类别
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
平时表现
10
10
按时参加设计指导,无违反纪律情况。
完成情况
30
20
按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10
能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量
35
15
报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5
课题背景介绍清楚,综述分析充分。
5
设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
5
符号统一;图表完备、符合规范要求。
5
能对整个设计过程进行全面的总结,得出有价值的结论或结果。
答辩情况
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩:
分
指导教师:
(签字)
日期:
年月日
目录
第一章课题概述………………………………………………………………….1
1.1摘要…………………………………………………………………………....2
1.2关键字……………………………………………………..…………………....2
1.3前言……………………………………………………..…………………........2
1.4目的……………………………………………………..……………………....2
第二章设计简介及设计方案论述………………………………………………....4
2.1程序设计思路……………………………………..………………………….….4
2.2模块说明图………………………………………………..………………….….4
2.3程序流程图……………………………………………..………………………..4
2.4程序相关说明……………………………………………..………………….….5
第三章详细设计…………………………………………………………..………...6
3.1构建菜单栏及其下拉菜单……………………………..………………………..6
3.2“文件”菜单的事件监听………………………………..………………………..6
3.3“编辑”菜单的事件监听……………………………..…………………………..7
3.4异常处理……………………………..………………………….……………….7
第四章设计结果及分析…………………………………………………..………...9
4.1测试分析……………………………………….……………………….…..........9
4.2源程序.…………………………………………………..……………………...10
总结…….……………………………………………………..…………………...16
附录主要程序代码………...………………………………..…………………...18
参考文献…….……………………………………………………..…………...........20
第一章课题背景(或绪论、概述)
1.1摘要
本次课程设计的题目是用JAVA语言编写记事本程序,要求是:
用图形界面实现;含有简单的文字编辑功能,如:
剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。
本程序主要用到了Javaswing组件和事件监听器,还用到了文件的输入输出流。
记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。
1.2关键字
记事本程序;Java语言;MyEclipse
1.3前言
Java的前身是Oak,它一开始只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大范围的Internet上。
1995年,Java语言的名字从Oak编程了Java。
1997年J2SE1.1发布。
1998年J2SE1.2发布,标志Java2的诞生。
十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。
Java的体系结构由Java语言、Javaclass、JavaAPI、Java虚拟机组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。
Java的平台标准有JavaME,JavaSE和JavaEE。
Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。
目前在众多的支持Java的开发工具中主要的有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。
其中JavaDevelopmentKit简称JDK是大多开发工具的基础。
以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的MyEclipse开发工具。
1.4目的
1)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;
3)培养学生在项目开发中团队合作精神、创新意识及能力。
第二章设计简介及设计方案论述
2.1程序设计思路
在本程序中,设计了一个菜单栏和文本内容区。
设计过程中用到了JScrollPane,JMenuMyListener,JFrame等。
JMenu用来制作菜单,菜单的内容包括“文件”“编辑”“关于”。
JTextArea主要用来输入文本。
2.2模块说明图
在图1中,首先创建一个名为Notebook的类并继承JFrame类作为最底层的容器
2.3程序流程图
图2-3
2.4程序相关说明
整个记事本分为2快:
菜单栏和内容输入区。
本程序中首先定义一个Notebook类继承JFrame作为最底层容器。
(1).JScrollPane为程序文本输入区。
(2).Menu为菜单栏。
(3)要想记事本完成需求分析中相应的功能,还必须添加事件监听器。
事件监听器不仅要添加在菜单栏和内容输入区,还需加在容器中。
本程序中ActListener实现了ActionListener接口,用来监听并处理所有菜单项和内容输入区为事件源的事件。
另外,还用来WindowListener来监听处理容器关闭触发的事件,WindowListener继承了WindowsAdapter类并覆盖了WindowsClosing方法。
第三章详细设计
3.1构建菜单栏及其下拉菜单
//设置菜单分类
JMenumenuFilemenuEditmenuViewmenuHelp;
PrivatevoidsetMenu(){
menuFile=new
JMenu("文件(F)",true);
menuEdit=newJMenu("编辑(E)",true);
menuView=newJMenu("察看(V)"true);
menuHelp=newJMenu("帮助(H)",true);
}
JMenuItemoptionofmenu[][]=newJMenuItem[][]{{
newJMenuItem("新建"),
newJMenuItem("打开"),
newJMenuItem("保存"),
newJMenuItem("退出")
},
{
newJMenuItem("复制"),
newJMenuItem("剪切"),
newJMenuItem("粘贴"),
newJMenuItem("颜色")
},
{
newJMenuItem("关于")
}
3.2“文件”菜单的事件监听
ActionListeneraction=newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringname=e.getActionCommand();
JMenuItemMI=(JMenuItem)e.getSource();
if("新建".equals(name)){
content.setText("");
file=null;
}
}elseif("打开".equals(name)){
if(file!
=null)openfile.setSelectedFile(file);
intreturnVal=openfile.showOpenDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
unfold();
}
}elseif("保存".equals(name)){
if(file!
=null)openfile.setSelectedFile(file);
intreturnVal=openfile.showSaveDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
saving();
}
}elseif("退出".equals(name)){
mynotepadf=newmynotepad();
ints=JOptionPane.showConfirmDialog(f,"退出?
","退出",JOptionPane.YES_NO_OPTION);
3.3.“编辑”菜单的事件监听
elseif("剪切".equals(name)){
content.cut();
}
elseif("复制".equals(name)){
content.copy();
}
elseif("粘贴".equals(name)){
content.paste();
}
elseif("颜色".equals(name)){
color=JColorChooser.showDialog(mynotepad.this,"",color);
content.setForeground(color);
3.4异常处理
在运行程序代码是有可能会产生异常情况或异常事件,为了避免这种情况,就需要在程序中用到Java异常处理机制。
本程序中选用的异常处理机制是try,catch。
捕获处理异常的第一步是用try选定要监控的异常范围,try后跟随catch代码块。
saving(){
try{
FileWriterWritef=newFileWriter(file);
Writef.write(content.getText());
Writef.close();
}
catch(Exceptione){e.printStackTrace();}
}
voidunfold(){
try{
FileReaderReadf=newFileReader(file);
intlen=(int)file.length();
char[]buffer=newchar[len];
Readf.read(buffer,0,len);
Readf.close();
content.setText(newString(buffer));
}catch(Exceptione){e.printStackTrace();}
}
第四章设计结果及分析
4.1测试分析
图4-1“文件”菜单中的“打开”对话框
打开文件后
“关于”对话框
4.2源程序
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
classmynotepadextendsJFrame{
Filefile=null;
Colorcolor=Color.red;
mynotepad(){
initTextContent();//初始化组件
initMenu();
initAboutDialog();
}
voidinitTextContent(){
getContentPane().add(newJScrollPane(content));//滚动面板对象
}
JTextPanecontent=newJTextPane();//创建/内容输入区
JFileChooseropenfile=newJFileChooser();//创建打开文件对话框
JColorChooseropencolor=newJColorChooser();//颜色选择
JDialogabout=newJDialog(this);//关于对话框
JMenuBarmenu=newJMenuBar();//创建菜单栏
//菜单栏的各个菜单
JMenu[]menus=newJMenu[]{
newJMenu("文件");
newJMenu("编辑");
newJMenu("关于")
};
//“文件”菜单项的四个下
JMenuItemoptionofmenu[][]=newJMenuItem[][]{{
newJMenuItem("新建"),
newJMenuItem("打开"),
newJMenuItem("保存"),
newJMenuItem("退出")
},
//编辑菜单的四个下拉菜单
{
newJMenuItem("复制"),
newJMenuItem("剪切"),
newJMenuItem("粘贴"),
newJMenuItem("颜色")
},
{
newJMenuItem("关于")
}
};
voidinitMenu(){
for(inti=0;i menu.add(menus[i]); for(intj=0;j menus[i].add(optionofmenu[i][j]); optionofmenu[i][j].addActionListener(action); } this.setJMenuBar(menu); } ActionListeneraction=newActionListener(){//添加事件监听 publicvoidactionPerformed(ActionEvente){ Stringname=e.getActionCommand(); JMenuItemMI=(JMenuItem)e.getSource(); if("新建".equals(name)){//监听“新建”事件 content.setText(""); file=null; } elseif("打开".equals(name)){//监听“打开”事件 if(file! =null)openfile.setSelectedFile(file); intreturnVal=openfile.showOpenDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=openfile.getSelectedFile();//打开选择文件 unfold(); } } elseif("保存".equals(name)){//监听“保存”事件 if(file! =null)openfile.setSelectedFile(file); intreturnVal=openfile.showSaveDialog(mynotepad.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=openfile.getSelectedFile(); saving(); } } elseif("退出".equals(name)){ mynotepadf=newmynotepad(); ints=JOptionPane.showConfirmDialog(f,"退出? ","退出",JOptionPane.YES_NO_OPTION);//提示用户是否退出 if(s==JOptionPane.YES_OPTION) System.exit(0); } elseif("剪切".equals(name)){//监听“剪切”事件 content.cut(); } elseif("复制".equals(name)){//监听“复制”事件 content.copy(); } elseif("粘贴".equals(name)){//监听“粘贴”事件 content.paste(); } elseif("颜色".equals(name)){//监听“颜色”事件 color=JColorChooser.showDialog(mynotepad.this,"",color);content.setForeground(color);//对颜色进行设置 } elseif("关于".equals(name)){ about.setSize(300,150);//设置“关于”对话框大小为300×150 about.show();//显示“关于”对话框 } }; voidsaving(){ try{ FileWriterWritef=newFileWriter(file);//创建文件写入器 Writef.write(content.getText()); Writef.close(); } catch(Exceptione){e.printStackTrace();} } voidunfold(){ try{ FileReaderReadf=newFileReader(file);//文件读入 intlen=(int)file.length(); char[]buffer=newchar[len]; Readf.read(buffer,0,len); Readf.close(); content.setText(newString(buffer)); }catch(Exceptione){e.printStackTrace();} } voidinitAboutDialog(){ about.setLayout(newGridLayout(3,1));//将“关于”对话框设置为3行1列 about.getContentPane().setBackground(Color.white);//设置对话框背景色about.getContentPane().add(newJLabel("我的记事本程序"));//对话框内容about.getContentPane().add(newJLabel("制作者: FXC"));about.getContentPane().add(newJLabel("2013年12月")); about.setModal(true);//设置对话框前端显 about.setSize(100,100); about.setLocation(250,170);//设置对话框显示位置 } } publicclassNotepad{ publicstaticvoidmain(Stringargs[]){//入口main函数 mynotepadnoted=newmynotepad(); noted.addWindowListener(newWindowAdapter(){ }); noted.setTitle("我的记事本程序");//记事本标题 noted.setSize(640,320);//设置记事本大小 noted.show(); noted.setLocation(150,100);//设置记事本显示位置 } 结束语 经过努力,基本上完成我的Java课程设计—简单的记事本程序,也基本上实现了老师需求分析时所预期的功能。 通过这次的课程设计,使将我从书本上学习到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 记事本 功能 模板