简单记事本设计.docx

上传人:b****6 文档编号:3407035 上传时间:2022-11-22 格式:DOCX 页数:14 大小:167.28KB
下载 相关 举报
简单记事本设计.docx_第1页
第1页 / 共14页
简单记事本设计.docx_第2页
第2页 / 共14页
简单记事本设计.docx_第3页
第3页 / 共14页
简单记事本设计.docx_第4页
第4页 / 共14页
简单记事本设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

简单记事本设计.docx

《简单记事本设计.docx》由会员分享,可在线阅读,更多相关《简单记事本设计.docx(14页珍藏版)》请在冰豆网上搜索。

简单记事本设计.docx

简单记事本设计

课程设计(大作业)报告

 

课程名称:

面向对象程序设计

设计题目:

设计一个记事本

院系:

信息技术学院

班级:

计算机科学与技术2班

设计者:

学号:

指导教师:

设计时间:

2014.1.4.-2014.1.6

 

昆明学院

昆明学院课程设计(大作业)任务书

姓名:

院系:

专业:

计算机科学与技术专业学号:

任务起止日期:

2014.1.4.-2014.1.6

课程设计题目:

设计一个记事本

课程设计要求:

设计要求:

设计一个记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找替换等功能。

可扩展功能。

1)界面设计

2)记事本的基本功能:

(1)菜单中有“文件”,“编辑”,“关于”三个主菜单。

(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:

分别用于新建文件,打开文件,保存文件,退出记事本。

(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个子菜单:

用于剪切文字,复制文字,粘贴文字。

可加查找替换等功能。

(4)“关于”菜单中有关于记事本版本等信息

功能可自行增加。

 

工作计划及安排

时间完成内容

4小时复习相关的课程设计所需的内容,提出要求、提供选题并检索资料、确定设计项目

8小时数据类型定义、确定存储结构、算法设计

10小时算法实现

4小时编写课程设计报告

 

指导教师签字

年月日

课程设计(大作业)成绩

学号:

姓名:

指导教师:

老师

课程设计题目:

设计一个记事本

总结:

经过两天的努力,基本上完成我的Java课程设计—个简单的记事本程序,也基本上实现了我在需求分析时所预期的功能。

通过这次的课程设计,使将我从书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。

同时,做这门课程设计也进一步加强了我的动手能力。

为了完成好这次课程设计,我提前做了较多的准备,一边上网查找相关资料,另一方面查阅相关书籍。

在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。

但是,设计过程中也存在一些问题,以及想要添加更多的功能,比如设置背景图,设置记事本字体等等功能,但是由于本人知识浅陋以及各种其他原因,使得这些想法没有实现,这是这次课程设计的一点遗憾。

同时经过这次设计,自己巩固连以前学的很多知识和学到了以前很多不会的知识,受益匪浅。

 

指导教师评语:

 

成绩:

 

填表时间:

 

指导教师签名:

课程设计(大作业)报告

 

1.课程设计介绍

1.1.课程设计内容

设计一个记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找替换等功能。

可扩展功能。

1)界面设计

2)记事本的基本功能:

(1)菜单中有“文件”,“编辑”,“关于”三个主菜单。

(2)“文件”有“新建”“打开”“保存”“退出”四个子菜单:

分别用于新建文件,打开文件,保存文件,退出记事本。

(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个子菜单:

用于剪切文字,复制文字,粘贴文字。

可加查找替换等功能。

(4)“关于”菜单中有关于记事本版本等信息

功能可自行增加。

1.2课程设计要求

(1)熟悉JAVA开发环境,掌握JAVA程序的编译和运行;

(2)掌握JAVA基本编程技术和方法;

(3)掌握GUI图形界面编程技术;

(4)了解异常处理机制。

2.总体设计

2.1设计题目总体设计、算法描述

在本程序中,设计了一个菜单栏和文本内容区。

设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。

JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。

JTextPane主要用来输入文本。

为了加入颜色的设置,所以加了一个JColorChooser组件。

在图1中,首先创建一个名为mynotepad的类并继承JFrame类作为最底层的容器。

 

 

 

图1.程序流程图

在图1中,构造一个mynotepad类时要做三件事情,分别是初始化容器(initTextContent)、初始化组件(initMenu、initAboutDialog)、设置事件监听器。

1).初始化组件

initTextContent();

initMenu();

initAboutDialog();

2).构建菜单栏及其下拉菜单

JMenu[]menus=newJMenu[]{

newJMenu("文件"),

newJMenu("编辑"),

newJMenu("关于")

};

JMenuItemoptionofmenu[][]=newJMenuItem[][]{{

newJMenuItem("新建"),

newJMenuItem("打开"),

newJMenuItem("保存"),

newJMenuItem("退出")

},

3).文件”菜单的事件监听

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);

2.2功能模块图、流程图分析

1).程序流程图

 

 

FalseFalse

 

truetruetruetruetruetruetruetrue

 

图3

 

图2.主流程图

2).模块说明图

 

图3.模块说明图

3.调试与性能分析

1.主界面图如下:

图4.主界面图

2.运行“文件”图如下:

图5.点击“文件”菜单运行情况图

3.“文件”菜单的“保存”对话

图6.“保存”对话界面图

4.“文件”菜单的“打开”对话

图7.“打开”对话界面图

4.参考文献

主要参考文献

配套教材:

Y. Daniel Liang. Introduction to Java Programming(Sixth Edition ).机械工业出版社, 2008

参考资料:

[1] 叶核亚. Java程序设计实用教程(第3版.电子工业出版社,2010

[2] 耿祥义. JAVA课程设计.清华大学出版,2009

[3] 耿祥义. Java2实用教程.清华大学出版社,2008 

[4] 黄小东.Java课程设计案例精编.中国水利水电出版社,2007

附录(程序清单)

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);

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(5,1));

about.getContentPane().setBackground(Color.white);

about.getContentPane().add(newJLabel("我的记事本程序"));

about.getContentPane().add(newJLabel("制作者:

zhujianchun"));

about.getContentPane().add(newJLabel("huangyingjun"));

about.getContentPane().add(newJLabel("2014年1月"));

about.getContentPane().add(newJLabel("昆明学院信息技术学院"));

about.setModal(true);

about.setSize(100,100);

about.setSize(100,100);

about.setLocation(250,170);

}

;

}

publicclassNotepad{//主函数

publicstaticvoidmain(Stringargs[]){

mynotepadnoted=newmynotepad();

noted.addWindowListener(newWindowAdapter(){

});

noted.setTitle("我的记事本程序");

noted.setSize(640,320);

noted.show();

noted.setLocation(150,100);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

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

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