java记事本课程设计报告.docx

上传人:b****9 文档编号:25515313 上传时间:2023-06-09 格式:DOCX 页数:26 大小:512.73KB
下载 相关 举报
java记事本课程设计报告.docx_第1页
第1页 / 共26页
java记事本课程设计报告.docx_第2页
第2页 / 共26页
java记事本课程设计报告.docx_第3页
第3页 / 共26页
java记事本课程设计报告.docx_第4页
第4页 / 共26页
java记事本课程设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

java记事本课程设计报告.docx

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

java记事本课程设计报告.docx

java记事本课程设计报告

课程设计报告

(本科)

课程:

面向对象程序设计

学号:

11104211221110421086

姓名:

潘雨胜邵阳

班级:

网络工程2班

教师:

钱田芬

时间:

2013.11.20-2013.12.20

计算机科学与技术系

设计名称:

编写一个记事本程序

设计内容、目的与要求:

1实验内容

1.1编写一个简单记事本程序;

1.2能实现编辑、保存、另存为、查找替换等功能

2实验要求

2.1用图形用户界面实现;

2.2用文件输入输出流编译。

2.3实现文件和编辑菜单里的功能;

3实验目的

3.1能够实现基本的文件录入即新建事件的功能;

3.2能够实现事件的保存和另存功能以及事件的删除;

3.3能够实现事件的查找和替换功能,保证程序的可修改性;

3.4能够实现事件内容的复制,粘贴和拷贝功能;

3.5最后是关于对改程序的帮助即改程序的介绍。

 

计划与进度安排:

2013.11.20--2013.11.30

对题目有基本的思路怎样去编译程序,查阅资料,惊醒初步的准备工作;

2013.12.01--2013.12.10

编译程序并上机调试运行,看是否能正确运行,并将有用的实验结果截图保存,编写文档,将程序每部步实现的功能,用电子文档的形式表达出来,并且用图文并茂的方式表现出自己的每一步设计思路;

2013.12.10--2013.12.20

将编译好的源程序和电子文档仔细查看,再次运行检查是否有误,然后再将电子文档打印成册,将程序以及电子文档让验收老师验收,如果有误还需再次修改。

设计过程、步骤(可加页):

4需求分析

4.1系统概述;

该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。

该程序主要用到了Javaswing和事件监听等。

4.2功能需求描述;

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

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

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

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

(3)“编辑”中有“剪切”“复制”“粘贴”“全选”“查找”“替换”六个字菜单:

用于剪切文字,复制文字,粘贴文字,全部选中。

增加了“查找”“替换”子菜单来对文字进行查找和替换。

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

4.3总体设计

开发与设计的总体思想:

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

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

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

JTextArea主要用来输入文本。

系统模块结构图

模块设计

系统模块流程图

5详细设计

5.1主界面模块

首先创建一个名为Notebook的类并继承Frame类实现监听接口作为最底层的容器(具体过程在“4.3.2自定义类及接口说明”作说明)。

菜单栏中有“文件”、“编辑”、“帮助”三项菜单,分别添加的相应的项,各实现其功能。

5.1.1主界面主要代码

publicNotebook()

{

this.setTitle("记事本");

contianer=this.getContentPane();

contianer.setLayout(newBorderLayout());

jta=newJTextArea();

contianer.add(jta);

JMenuBarmb=newJMenuBar();

buildMainMenu(mb);

this.setJMenuBar(mb);

this.setVisible(true);

this.setSize(650,450);

}

5.2文件界面

5.2.1文件界面包括新建(new)、打开(open)、保存(save)和另存(saves)为退出(exit)等功能,通过给各功能初始化容器、初始化组件、设置事件监听器,下面有其实现方法:

voidbuildMainMenu(JMenuBarmb){

JMenufileMenu=newJMenu("文件(F)");

fileMenu.setMnemonic(KeyEvent.VK_F);

JMenuItemnewMenuItem=newJMenuItem("新建");

fileMenu.add(newMenuItem);

JMenuItemopenMenuItem=newJMenuItem("打开");

openMenuItem.setMnemonic(KeyEvent.VK_O);

openMenuItem.addActionListener(newOpenActionListener());

fileMenu.add(openMenuItem);

JMenuItemsaveMenuItem=newJMenuItem("保存");

saveMenuItem.setMnemonic(KeyEvent.VK_S);

saveMenuItem.addActionListener(newSaveActionListener());

fileMenu.add(saveMenuItem);

JMenuItemsaveasMenuItem=newJMenuItem("另存为");

saveasMenuItem.setMnemonic(KeyEvent.VK_A);

saveasMenuItem.addActionListener(newSaveActionListener());

fileMenu.add(saveasMenuItem);

JMenuItemexitMenuItem=newJMenuItem("退出");

exitMenuItem.setMnemonic(KeyEvent.VK_E);

5.2.2各部分截图;

 

打开界面截图;

保存部分截图;

退出部分截图

5.2.3各部分实现的功能框图

保存

 

新建

 

5.3编辑界面

5.3.1主要有剪切、复制、粘贴、查找和替换功能,通过cut,copy,paste,serach和ache实现各功能,然后对每个功能初始化容器、初始化组件、设置事件监听器保证功能的实现,下面是实现各功能的主要代码:

exitMenuItem.addActionListener(newExitActionListener());

fileMenu.add(exitMenuItem);

mb.add(fileMenu);

JMenueditMenu=newJMenu("编辑(E)");

editMenu.setMnemonic(KeyEvent.VK_E);

JMenuItemcutMenuItem=newJMenuItem("剪切");

cutMenuItem.setMnemonic(KeyEvent.VK_T);

cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));

cutMenuItem.addActionListener(newCutActionListener());

editMenu.add(cutMenuItem);

JMenuItemcopyMenuItem=newJMenuItem("复制");

copyMenuItem.setMnemonic(KeyEvent.VK_C);

copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK));

copyMenuItem.addActionListener(newCopyActionListener());

editMenu.add(copyMenuItem);

JMenuItempasteMenuItem=newJMenuItem("粘贴");

pasteMenuItem.setMnemonic(KeyEvent.VK_P);

pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK));

pasteMenuItem.addActionListener(newPasteActionListener());

editMenu.add(pasteMenuItem);

JMenuItemsallMenuItem=newJMenuItem("全选");

sallMenuItem.setMnemonic(KeyEvent.VK_A);

sallMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));

sallMenuItem.addActionListener(newSallActionListener());

editMenu.add(sallMenuItem);

JMenuItemsearchMenuItem=newJMenuItem("查找");

searchMenuItem.setMnemonic(KeyEvent.VK_S);

searchMenuItem.addActionListener(newSearchActionListener());

editMenu.add(searchMenuItem);

JMenuItemchanMenuItem=newJMenuItem("替换");

chanMenuItem.setMnemonic(KeyEvent.VK_G);

chanMenuItem.addActionListener(newChanActionListener());

editMenu.add(chanMenuItem);

mb.add(editMenu);

5.3.2截图;

剪切

 

查找替换

5.3.3各功能的实现框图;

5.3.3.1剪切

5.3.3.2粘贴

5.3.3.3删除

5.4帮助界面

5.4.1帮助界面主要是对该程序的介绍,以及设计人员的介绍,通过about方法来实现的,下面是主要的代码:

JMenuhelpMenu=newJMenu("帮助(H)");

helpMenu.setMnemonic(KeyEvent.VK_H);

JMenuItemabouthMenuItem=newJMenuItem("关于记事本");

abouthMenuItem.setMnemonic(KeyEvent.VK_A);

abouthMenuItem.addActionListener(newAbouthActionListener());

helpMenu.add(abouthMenuItem);

mb.add(helpMenu);

}

 

5.4.2帮助部分截图:

6、原代码

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyEvent;

importjava.io.File;

importjava.io.FileReader;

importjava.io.FileWriter;

importjavax.swing.*;

publicclassNotebookextendsJFrame{

Containercontianer;

JFileChooserfc=newJFileChooser();

Filefile=null;

JTextAreajta;

privateMyFindDialogfd=newMyFindDialog(this,jta);

publicNotebook()

{

this.setTitle("记事本");

contianer=this.getContentPane();

contianer.setLayout(newBorderLayout());

jta=newJTextArea();

contianer.add(jta);

JMenuBarmb=newJMenuBar();

buildMainMenu(mb);

this.setJMenuBar(mb);

this.setVisible(true);

this.setSize(650,450);

}

voidbuildMainMenu(JMenuBarmb){

JMenufileMenu=newJMenu("文件(F)");

fileMenu.setMnemonic(KeyEvent.VK_F);

JMenuItemnewMenuItem=newJMenuItem("新建");

fileMenu.add(newMenuItem);

JMenuItemopenMenuItem=newJMenuItem("打开");

openMenuItem.setMnemonic(KeyEvent.VK_O);

openMenuItem.addActionListener(newOpenActionListener());

fileMenu.add(openMenuItem);

JMenuItemsaveMenuItem=newJMenuItem("保存");

saveMenuItem.setMnemonic(KeyEvent.VK_S);

saveMenuItem.addActionListener(newSaveActionListener());

fileMenu.add(saveMenuItem);

JMenuItemsaveasMenuItem=newJMenuItem("另存为");

saveasMenuItem.setMnemonic(KeyEvent.VK_A);

saveasMenuItem.addActionListener(newSaveActionListener());

fileMenu.add(saveasMenuItem);

JMenuItemexitMenuItem=newJMenuItem("退出");

exitMenuItem.setMnemonic(KeyEvent.VK_E);

exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,ActionEvent.CTRL_MASK));

exitMenuItem.addActionListener(newExitActionListener());

fileMenu.add(exitMenuItem);

mb.add(fileMenu);

JMenueditMenu=newJMenu("编辑(E)");

editMenu.setMnemonic(KeyEvent.VK_E);

JMenuItemcutMenuItem=newJMenuItem("剪切");

cutMenuItem.setMnemonic(KeyEvent.VK_T);

cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));

cutMenuItem.addActionListener(newCutActionListener());

editMenu.add(cutMenuItem);

JMenuItemcopyMenuItem=newJMenuItem("复制");

copyMenuItem.setMnemonic(KeyEvent.VK_C);

copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,ActionEvent.CTRL_MASK));

copyMenuItem.addActionListener(newCopyActionListener());

editMenu.add(copyMenuItem);

JMenuItempasteMenuItem=newJMenuItem("粘贴");

pasteMenuItem.setMnemonic(KeyEvent.VK_P);

pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,ActionEvent.CTRL_MASK));

pasteMenuItem.addActionListener(newPasteActionListener());

editMenu.add(pasteMenuItem);

JMenuItemsallMenuItem=newJMenuItem("全选");

sallMenuItem.setMnemonic(KeyEvent.VK_A);

sallMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));

sallMenuItem.addActionListener(newSallActionListener());

editMenu.add(sallMenuItem);

JMenuItemsearchMenuItem=newJMenuItem("查找");

searchMenuItem.setMnemonic(KeyEvent.VK_S);

searchMenuItem.addActionListener(newSearchActionListener());

editMenu.add(searchMenuItem);

JMenuItemchanMenuItem=newJMenuItem("替换");

chanMenuItem.setMnemonic(KeyEvent.VK_G);

chanMenuItem.addActionListener(newChanActionListener());

editMenu.add(chanMenuItem);

mb.add(editMenu);

JMenuhelpMenu=newJMenu("帮助(H)");

helpMenu.setMnemonic(KeyEvent.VK_H);

JMenuItemabouthMenuItem=newJMenuItem("关于记事本");

abouthMenuItem.setMnemonic(KeyEvent.VK_A);

abouthMenuItem.addActionListener(newAbouthActionListener());

helpMenu.add(abouthMenuItem);

mb.add(helpMenu);

}

classMyFindDialogextendsJDialogimplementsActionListener{

privateLabell1=newLabel("查找字符串");

privateLabell2=newLabel("替换字符串");

privateTextFieldtf1=newTextField(10);

privateTextFieldtf2=newTextField(10);

privateButtonb1=newButton("向下查找");

privateButtonb2=newButton("替换");

publicMyFindDialog(Frameowner,JTextAreajta){

super(owner,"查找",false);

setLayout(null);

l1.setBounds(10,30,80,20);

l2.setBounds(10,70,80,20);

tf1.setBounds(90,30,90,20);

tf2.setBounds(90,70,80,20);

b1.setBounds(190,30,80,20);

b2.setBounds(190,70,80,20);

add(l1);

add(l2);

add(tf1);

add(tf2);

add(b1);

add(b2);

setResizable(false);

b1.addActionListener(this);

b2.addActionListener(this);

}

publicvoidshowFind(){

setTitle("查找");

setSize(280,300);

setVisible(true);

}

publicvoidshowReplace(){

setTitle("查找替换");

setSize(280,300);

setVisible(true);

}

privatevoidfind(){

Stringcontent=jta.getText();

Stringstr=tf1.getText();

intpp=jta.getCaretPosition();

intend=content.length();

Stringtext=content.substring

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

当前位置:首页 > 工程科技 > 信息与通信

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

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