JAVA课程设计---设计一个记事本

  • 格式:doc
  • 大小:121.00 KB
  • 文档页数:13

课程设计(大作业)报告

课程名称: 面向对象程序设计

设计题目: 设计一个记事本

院 系: 信息技术学院

课程设计(大作业)任务书

课程设计题目:

课程设计要求:

1、需求分析(功能分析)

2、系统总体设计(须有框图、UML图)

3、软件平台

4、各模块分析与实现

5、调试分析

6、总结(收获)

7、参考文献

8、附录 源代码

工作计划及安排:

1、12月31日完成设计分析报告

2、1月1日分析记事本的需求

3、1月2日基本功能的实现与概要设计

4、1月3日初定程序设计思路

5、1月4日完成程序运行界面

6、1月5日实现功能分析与流程图

7、1月6日开展日异常处理与总结报告

指导教师签字

年 月 日 课程设计(大作业)成绩

课程设计题目: 《设计一个记事本》

总结:

通过本次实训,我搞懂了很多东西,也基本完成了简单的记事本程序,同时基本上实现了我在需求分析时所预期的功能。通过课程设计,将理论知识用到了实践上,从而进一步巩固和丰富了我所学过的知识,使用SWING包创建图形界面,JFRAME设计按钮我很感兴趣,让我更深层次地认识到Java及其强大的功能。同时,做这门课程设计也进一步加强了我的动手能力。为了完成好这次课程设计,我提前做了准备,上网查阅资料,查阅相关书籍,咨询学长。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设计过程中也存在一些问题,由于知识不足的原因,使得设置密码功能没有实现,这是一点遗憾,但是更加激励了我学好这门课的决心。

指导教师评语:

成绩:

填表时间: 指导教师签名:

课程设计(大作业)报告

一、需求分析

如今有关记事本的软件种类繁多。功能也是应有尽有,但是,软件并不是十全十美的:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,实现输入、保存、编辑等简单实用的功能就够了。本程序的设计就是依照这样一种需要设计了一个简单的记事本程序。

本程序要构建的记事本程序参照了Windows操作系统的记事本工具,具体其功能有以下几个方面:

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

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

建文件,打开文件,保存文件,退出记事本。

(3)“编辑”中有“剪切”“复制”“粘贴”“颜色”三个字菜单:用于剪切文字,复制文字,粘贴文字。增加了“颜色”子菜单来对文字的颜色进行设置。

(4)“关于”菜单中有关于记事本程序的制作日期,作者等信息。

二、系统总体设计

在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用来制作菜单,菜单包括“文件”“编辑”“关于”。JTextPane主要用来输入文本。为了加入颜色的设置,所以加了一个JColorChooser组件。

1.系统功能结构图设计

开始

文件 编辑 帮助 输入文字

2.系统文件结构图设计

3.系统编辑结构图设计

开始

编辑

剪切 复制 粘贴 查找 替换 全选 删除

开始

文件

新建 打开 保存 另存为 退出 UML图:

三、软件平台

1、使用JDK配置环境在JAVA编辑器下进行编辑JAVA源程序

2、EditPlus 3

四、模块的分析与实现

构建菜单以及下拉菜单:

JMenu[] menus=new JMenu[]{

new JMenu("文件"),

new JMenu("编辑"),

new JMenu("关于")

};

JMenuItem optionofmenu[][]=new JMenuItem[][]{{

new JMenuItem("新建"),

new JMenuItem("打开"),

new JMenuItem("保存"),

new JMenuItem("退出")

},

{

new JMenuItem("复制"), new JMenuItem("剪切"),

new JMenuItem("粘贴"),

new JMenuItem("颜色")

},

{

new JMenuItem("关于")

}

};

文件菜单事件监听:

ActionListener action=new ActionListener(){

public void actionPerformed(ActionEvent e){

String name = e.getActionCommand();

JMenuItem MI=(JMenuItem)e.getSource();

if("新建".equals(name)){

content.setText("");

file=null;

}else if("打开".equals(name)){

if(file !=null)openfile.setSelectedFile(file);

int returnVal=openfile.showOpenDialog(mynotepad.this);

if(returnVal==JFileChooser.APPROVE_OPTION){

file=openfile.getSelectedFile();

unfold();

}

}else if("保存".equals(name)){

if(file!=null) openfile.setSelectedFile(file);

int returnVal=openfile.showSaveDialog(mynotepad.this);

if(returnVal==JFileChooser.APPROVE_OPTION){

file=openfile.getSelectedFile();

saving();

}

}else if("退出".equals(name)){

mynotepad f=new mynotepad();

int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);

编辑菜单的事件监听:

else if("剪切".equals(name)){

content.cut(); }else if("复制".equals(name)){

content.copy();

}else if("粘贴".equals(name)){

content.paste();

}else if("颜色".equals(name)){

color=JColorChooser.showDialog(mynotepad.this,"",color);

content.setForeground(color);

异常处理:

void saving(){

try{

FileWriter Writef=new FileWriter(file);

Writef.write(content.getText());

Writef.close();

}

Catch (Exception e){e.printStackTrace();}

}

关于部分:

void initAboutDialog(){

about.setLayout(new GridLayout(3,1));

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

about.getContentPane().add(new JLabel("简单记事本程序设计"));

about.getContentPane().add(new JLabel("11级计算机1班"));

about.getContentPane().add(new JLabel("制作者:彭磊"));

about.getContentPane().add(new JLabel("2012年12月27日"));

about.setModal(true);

about.setSize(200,100);

about.setLocation(250,150);

}

五、调试分析

各部分调试功能如图所示: