实现记事本功能.docx

上传人:b****4 文档编号:12340489 上传时间:2023-04-18 格式:DOCX 页数:26 大小:277.12KB
下载 相关 举报
实现记事本功能.docx_第1页
第1页 / 共26页
实现记事本功能.docx_第2页
第2页 / 共26页
实现记事本功能.docx_第3页
第3页 / 共26页
实现记事本功能.docx_第4页
第4页 / 共26页
实现记事本功能.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

实现记事本功能.docx

《实现记事本功能.docx》由会员分享,可在线阅读,更多相关《实现记事本功能.docx(26页珍藏版)》请在冰豆网上搜索。

实现记事本功能.docx

实现记事本功能

数学与计算机工程学院

程序设计类课程设计报告

设计题目:

实现记事本功能

学生学号:

专业班级:

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模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1