简易记事本课程设计.docx

上传人:b****4 文档编号:24121715 上传时间:2023-05-24 格式:DOCX 页数:17 大小:217.11KB
下载 相关 举报
简易记事本课程设计.docx_第1页
第1页 / 共17页
简易记事本课程设计.docx_第2页
第2页 / 共17页
简易记事本课程设计.docx_第3页
第3页 / 共17页
简易记事本课程设计.docx_第4页
第4页 / 共17页
简易记事本课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

简易记事本课程设计.docx

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

简易记事本课程设计.docx

简易记事本课程设计

 

程序设计

课程设计报告

 

设计题目:

简易记事本

专业班级:

电商0902

学号:

20090521079

姓名:

乔恒毅

指导教师:

张莹

时间:

2011.06.13-2011.06.24

 

说明

一、报告内容

课程设计报告一般应包括以下内容:

1.课题概述(任务、目的、要求)

(一)任务:

用Java编写一个简单的记事本,使其能够实现最基本的功能,如文件的新建、打开、保存、退出,编辑的删除、全选、剪切、复制、粘贴,格式的颜色设置等等。

(二)目的

(1)设计一个简单的Windows记事本,可以实现以下功能:

1:

文件的新建,打开,保存;

2:

对文件的编辑,如全选,复制,剪切,粘贴;

3;对字体颜色改变

4:

执行完操作后,能够顺利关闭记事本;

(2)通过这次设计,可以帮助学生:

1:

提高对Java语言设计的掌握能力;

2:

理论联系实际,进一步提高学生的软件开发技术;

3:

培养学生分析、解决问题的能力。

(三)要求:

(1)程序易懂

编写代码的过程中,应时刻意识到所编写的代码不仅要能够在机器中运行,还要使别人容易看懂。

机器能够运行而别人无法理解的程序,不是好程序,为此要尽量遵循原则,写简单明了的代码。

(2)先设计,后编码

在编码之前作好程序的设计工作,可以减少以后重复修改代码的工作量,作到事倍功半。

因此在真正开始编程前,花一定时间搞清楚怎样写代码,将来可能花更少的时间编写代码,而且会减少将来大量修改代码的机会。

(3)保持代码简洁

复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。

(4)功能实现

在整个设计中要保持完整性,能够实现记事本中最基本的功能,如打开、保存等。

所写内容的字体可以自由设置,颜色也可随意更改。

2.设计思路及采取的方案

1:

界面设计

在主界面中设计一个iFrame容器,并在其中加入一个下拉菜单和一个文本域控件。

2:

功能设计

在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。

点击不同菜单项时,进行不同的操作。

3:

代码设计

编写每个控件的相关代码,并进行调试。

创建了一个标题为“记事本”的窗口,包括菜单栏,菜单菜单项。

实现功能:

对文件的新建、打开、保存、另存、退出。

对文本的剪切、复制、粘贴、全选。

对文本字体:

颜色设置

关于该记事本的介绍

系统详细设计

1:

界面设计

创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息

此段代码代码如下:

Menufile=newMenu("文件");

MenuItemfile_new=newMenuItem("新建");

MenuItemfile_open=newMenuItem("打开");

MenuItemfile_save=newMenuItem("保存");

MenuItemfile_save_as=newMenuItem("另存");

MenuItemfile_exit=newMenuItem("退出");

Menuedit=newMenu("编辑");

MenuItemedit_copy=newMenuItem("复制");

MenuItemedit_cut=newMenuItem("剪切");

MenuItemedit_paste=newMenuItem("粘贴");

MenuItemedit_delete=newMenuItem("删除");

Menuformat=newMenu("格式");

MenuItemformat_fontcolor=newMenuItem("字体颜色");

Menuhelp=newMenu("关于");

MenuItemhelp_subject=newMenuItem("主题");

Stringcopy;//存储剪切板上的内容

intpos;//光标位置

Colorcolor;//调色板

FileDialogfiledialog_open,filedialog_save;//声明打开对话框和保存对话框

StringcurrentFileName;//声明文件路径及文件名存储变量

2:

界面调试

确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。

在完成加入菜单控件后,不能缺少this.setJMenuBar(menu);语句,将menu设为主窗体的菜单条,否则会看不到菜单栏。

如图:

3:

功能调试

打开功能:

代码如下:

privatevoidfileopen()

{

filedialog_open=newFileDialog(this,"打开对话框",FileDialog.LOAD);//实例打开对话框

filedialog_open.setVisible(true);

Stringdir=filedialog_open.getDirectory();//获得用户选择的文件路径

Stringname=filedialog_open.getFile();//获得用户选择的文件名

Filefile=newFile(dir+name);//构造文件对象

try{

FileReaderfr=newFileReader(file);//输入流对象

BufferedReaderin=newBufferedReader(fr);

Stringline=in.readLine();//读入一行数据

Stringtext="";

while(line!

=null){

text=text+line+"\n";//将数据附加到字符串变量text后

line=in.readLine();//读入一行新数据

}

jtextarea.setText(text);//将text的值在文本区显示出来

in.close();//关闭输入流对象

fr.close();

}catch(Exceptione1){

e1.getStackTrace();

}

}

代码如下:

privatevoidfilesave_as(){

filedialog_save=newFileDialog(this,"保存",FileDialog.SAVE);//实例化保存对话框

filedialog_save.setVisible(true);//显示文件保存对话框

Stringdir=filedialog_save.getDirectory();//获得用户选择的文件路径

Stringname=filedialog_save.getFile();//获得用户选择的文件名

currentFileName=dir+name;//文件路径及文件名

filesave();//调用文件保存方法

}

3.取得的结果

2

 

4.总结与体会(包括:

设计中遇到的问题及解决过程;设计中产生的错误及原因分析;设计体会和收获)

通过此次的综合实验,我对java程序设计相关知识有了进一步的理解与学习,结合实例体会到面向对象的编程。

但此次试验中,在记事本的一些功能实现上还存在着很多不足,比如对修改后的文件保存时应该对其进行更改保存的提示等。

此次的试验,让我体会到java编程在实际生活中应用的广泛与实用性,同时让我在复习前面所学知识的同时发现在学习中的欠缺与不足,因而在今后的学习中要更加努力。

6.附录(原程序代码、注释及仿真波形等)

importjava.awt.Color;

importjava.awt.FileDialog;

importjava.awt.Font;

importjava.awt.Menu;

importjava.awt.MenuBar;

importjava.awt.MenuItem;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.File;

importjava.io.FileReader;importjava.io.FileWriter;

importjavax.swing.JColorChooser;

importjavax.swing.JFrame;

importjavax.swing.JScrollPane;

importjavax.swing.JTextArea;

publicclassNotepadextendsJFrameimplementsActionListener{

/**

**/privatestaticfinallongserialVersionUID=1L;

/**

*@paramargs

*/MenuBarmenubar=newMenuBar();

JTextAreajtextarea=newJTextArea(10,35);

JScrollPanejscrollpane=newJScrollPane(jtextarea);//将文本域包含在滚动面板中.不需要add()添加

Menufile=newMenu("文件");

MenuItemfile_new=newMenuItem("新建");

MenuItemfile_open=newMenuItem("打开");

MenuItemfile_save=newMenuItem("保存");

MenuItemfile_save_as=newMenuItem("另存");

MenuItemfile_exit=newMenuItem("退出");

Menuedit=newMenu("编辑");

MenuItemedit_copy=newMenuItem("复制");

MenuItemedit_cut=newMenuItem("剪切");

MenuItemedit_paste=newMenuItem("粘贴");

MenuItemedit_delete=newMenuItem("删除");

Menuformat=newMenu("格式");

MenuItemformat_fontcolor=newMenuItem("字体颜色");

Menuhelp=newMenu("关于");

MenuItemhelp_subject=newMenuItem("主题");

Stringcopy;//存储剪切板上的内容

intpos;//光标位置

Colorcolor;//调色板

FileDialogfiledialog_open,filedialog_save;//声明打开对话框和保存对话框

StringcurrentFileName;//声明文件路径及文件名存储变量

Notepad(){

super("记事本");

this.add(jscrollpane);

jtextarea.setFont(newFont("",Font.LAYOUT_LEFT_TO_RIGHT,16));//设置文本域中的字体大小

jtextarea.setLineWrap(true);

this.setMenuBar(menubar);//菜单条加在窗体上

menubar.add(file);

file.add(file_new);

file_new.addActionListener(this);

file.add(file_open);

file_open.addActionListener(this);

file.add(file_save);

file_save.addActionListener(this);

file.add(file_save_as);

file_save_as.addActionListener(this);

file.addSeparator();

file.add(file_exit);

file_exit.addActionListener(this);

menubar.add(edit);

edit.add(edit_copy);

edit_copy.addActionListener(this);

edit.add(edit_cut);

edit_cut.addActionListener(this);

edit.add(edit_paste);

edit_paste.addActionListener(this);

edit.addSeparator();

edit.add(edit_delete);

edit_delete.addActionListener(this);

menubar.add(format);

format.add(format_fontcolor);

format_fontcolor.addActionListener(this);

menubar.add(help);

help.add(help_subject);

help_subject.addActionListener(this);

this.setSize(500,500);

this

.setLocation(

(getToolkit().getScreenSize().width-this.getSize().width)/2,

(getToolkit().getScreenSize().height-this.getSize().height)/2);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

publicstaticvoidmain(String[]args){

newNotepad();

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==file_new){

jtextarea.setText("");

}

if(e.getSource()==file_open){

fileopen();

}

if(e.getSource()==file_save){

filesave();

}

if(e.getSource()==file_save_as){

filesave_as();

}

if(e.getSource()==file_exit){

System.exit(0);

}

if(e.getSource()==edit_copy){

copy=jtextarea.getSelectedText();//拖动鼠标选取文本

}

if(e.getSource()==edit_cut){

copy=jtextarea.getSelectedText();//先将选中的字符串保存在copy中,再将文本框中的字符清空

jtextarea.replaceRange("",jtextarea.getSelectionStart(),jtextarea

.getSelectionEnd());

}

if(e.getSource()==edit_paste){//注:

这种粘貼方式只能粘贴在本记事本中复制的内容(未调用系统剪切板)

jtextarea.replaceRange("",jtextarea.getSelectionStart(),jtextarea

.getSelectionEnd());//先将选中的文本清空.这种主要针对你想将选中的内容覆盖掉

pos=jtextarea.getCaretPosition();//将光标位置赋值给变量pos

jtextarea.insert(copy,pos);//在光标位置插入复制的值-copy.

}

if(e.getSource()==edit_delete){//删除方法-用空格去替换光标选中的文本

jtextarea.replaceRange("",jtextarea.getSelectionStart(),jtextarea

.getSelectionEnd());

}

if(e.getSource()==format_fontcolor){

color=JColorChooser.showDialog(this,"调色板",Color.BLACK);

jtextarea.setForeground(color);//设置文本域中字体颜色、Color.BLACK表示默认黑色

}if(e.getSource()==help_subject){//弹出窗体

JFrameframe=newJFrame("关于");

JTextAreajtextarea=newJTextArea();

jtextarea.setEditable(false);

jtextarea.setLineWrap(true);

jtextarea.append("本记事本只有以下简单功能:

"+"\n");

jtextarea.append("1:

新建"+"\t");

jtextarea.append("2:

打开"+"\n");

jtextarea.append("3:

保存"+"\t");

jtextarea.append("4:

另存"+"\n");

jtextarea.append("5:

退出"+"\t");

jtextarea.append("6:

复制"+"\n");

jtextarea.append("7:

剪切"+"\t");

jtextarea.append("8:

粘贴"+"\n");

jtextarea.append("9:

字体颜色"+"\t");

jtextarea.append("10:

刪除"+"\n");

frame.add(jtextarea);

frame.setSize(180,180);

frame.setResizable(false);

frame.setLocation(250,100);

frame.setVisible(true);

}

}privatevoidfileopen(){

filedialog_open=newFileDialog(this,"打开对话框",FileDialog.LOAD);//实例打开对话框

filedialog_open.setVisible(true);

Stringdir=filedialog_open.getDirectory();//获得用户选择的文件路径

Stringname=filedialog_open.getFile();//获得用户选择的文件名

Filefile=newFile(dir+name);//构造文件对象

try{

FileReaderfr=newFileReader(file);//输入流对象

BufferedReaderin=newBufferedReader(fr);

Stringline=in.readLine();//读入一行数据

Stringtext="";

while(line!

=null){

text=text+line+"\n";//将数据附加到字符串变量text后

line=in.readLine();//读入一行新数据

}

jtextarea.setText(text);//将text的值在文本区显示出来

in.close();//关闭输入流对象

fr.close();

}catch(Exceptione1){

e1.getStackTrace();

}

}

privatevoidfilesave(){

if(currentFileName==null){//判断该文件是否选择了保存路径

filesave_as();

}else{

Filefile=newFile(currentFileName);//创建文件对象,获得文件保存路径及名称

try{

FileWriterfw=newFileWriter(file);//创建输出流对象

BufferedWriterout=newBufferedWriter(fw);

out.write(jtextarea.getText());//将文本区内容写到指定文件中

out.flush();//关闭输出流

fw.close();

}catch(Exceptioneo){

eo.printStackTrace();

}

}

}

privatevoidfilesave_as(){

filedialog_save=newFileDialog(this,"保存",FileDialog.SAVE);//实例化保存对话框

filedialog_save.setVisible(true);//显示文件保存对话框

Stringdir=filedialog_save.getDirectory();//获得用户选择的文件路径

Stringname=filedialog_save.getFile();//获得用户选择的文件名

currentFileName=dir+name;//文件路径及文件名

filesave();//调用文件保存方法}

}

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

当前位置:首页 > 解决方案 > 商业计划

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

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