课程设计 JAVA 记事本Word格式.docx
- 文档编号:21398207
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:20
- 大小:252.20KB
课程设计 JAVA 记事本Word格式.docx
《课程设计 JAVA 记事本Word格式.docx》由会员分享,可在线阅读,更多相关《课程设计 JAVA 记事本Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
新建文件、打开文件、文件保存、文件另存为、剪切、复制、粘贴、删除、查找/替换、改变字体大小。
程序运行结果如下图。
工作计划及安排:
12月27日:
选定本组要做的题目,对题目进行分析,上网查找相关资料
12月28日至29日:
画流程图,写程序
12月30日:
调试程序,填写报告书
12月31日:
上交作业
一开始的时候,我们组的几乎都没有什么头绪,然后就是在网上查找记事本程序的设计步骤和用到的相应函数,了解了一些基本的步骤之后,然后就开始分工。
我们统一了所有要用到的参数、变量、公共方法。
杜长友设计框架,包括所有菜单及其子菜单在框架内的显示、文本域、滚动条、头文件、然后还有在菜单中加入子菜单,实现子菜单所代表的功能的方法调用,再加上主函数。
潘竹比较强悍,因为她的Java学得好么,所以就承担了比较多的复杂任务了:
她做了文件的新建、打开、保存、另存及其异常处理、打印、退出这一功能模块。
还有就是粘贴、复制、撤销、剪切、删除、全选、转到这一部分功能模块。
寸得艳这个姑娘也是很猛啦,她负责设计了查找方法,字体设置方法和帮助主题,还有就是文本域。
做到周三我们各自负责的部分基本可以啦,然后组合在一起却不可以调试通过。
经过相互的解释,协调了各自的功能模块,最后勉强通过了。
指导教师评语:
指导教师签字
年月日
课程设计(大作业)成绩
学号:
200911012**姓名:
***指导教师:
记事本
总结:
这次课程设计中,我们三人为一组,我主要设计框架,包括所有菜单及其子菜单在框架内的显示、文本域、滚动条、头文件、然后还有在菜单中加入子菜单,实现子菜单所代表的功能的方法调用,再加上主函数这一部分。
其下共有十一个功能,分别是撤销、剪切、复制、粘贴、删除、查找、查找下一个、替换、转到、全选字体设置。
在开始做的几天里,我又重新看了一下课本,还查找了相关的一些资料,在同组同学的帮助和指导下,最终完成了这些内容中的大部分内容,但是很不完善,最后我们组员又在一起讨论了才完善起来。
通过这次课程设计,我更加深刻的体会到自己对所学的知识理解的实在是很有限,简单的作业还可以自己写出相对完整的程序代码,但是大一点、难一些的内容,似乎一点都不懂。
所以一开始拿到题目的时候,根本就不知道从何处着手,还是从网上找了一些程序代码,一点一点的做实验,基本了解一些相应的函数的运用后才自己慢慢模仿着编程。
这次课程设计中,我觉得有很多收获,首先通过这次课题,我了解到了自己的不足,认识到自己对哪些知识掌握了,对哪些知识还需要加倍努力,对学过的知识理解的更加透彻了,另外我觉得自己最大的收获是,我完成了自己的任务,虽然不是很成功,远远没有达到题目的要求,而且还是在同学的帮助下才完成的,但我觉得起码我尝试了,并且我尽了自己最大的努力,而且还学到了很多新知识,以后运用起来也会更容易。
而且作为一个团队只有相互配合协调工作才会有所成就,所以学会与他人合作才能更好的完成任务。
成绩:
填表时间:
指导教师签名:
目录
1课程设计介绍错误!
未定义书签。
1.1课程设计内容错误!
1.2课程设计要求错误!
2总体设计错误!
2.1课设题目总体设计、算法描述错误!
2.2功能模块图、流程图分析错误!
3调试与性能分析错误!
4参考文献错误!
附录(程序清单)错误!
1课程设计介绍
1.1课程设计内容
用Java程序语言设计一个具有GUI界面的记事本,事本界面要求有标题显示栏,最小化,最大化,关闭按钮和文本编辑区。
含有工具栏,其中包括“文件(F)”、“编辑(E)”、“格式(O)”、“查看(V)”、“帮助(H)”菜单,菜单下还应包含有子菜单。
记事本含有简单的文字编辑功能,如:
剪切、复制、粘贴、删除;
能实现文件的打开、保存、另存为、查找、替换等功能。
还可以实现文件的打开、文件保存异常情况处理。
1.2课程设计要求
要构建的记事本程序所用语言为Java,记事本要实现的功能有以下几个方面:
(1)、菜单中有“文件”、“编辑”、“查看”、“格式”、“帮助”五个主菜单;
(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。
(3)、“编辑”中,有“剪切”、“复制”、“粘贴”、“删除”、“查找”、“替换”、“全选”七个子菜单:
用于剪切文字,复制文字,粘贴文字,删除文字,查找文件中的指定的字符串,替换文件中的指定的字符串,选定整个文件;
(4)、“格式”中有“字体换行”、“字体”分别用于字体换行和字体转换;
(5)、“查看”中有“状态栏”查看当前状态;
(6)、“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息;
(7)、设计完成后学要调试运行通过。
2总体设计
2.1题目总体设计、算法描述
对于此次用Java编写记事本的总体设计有:
a、首先把框架和几个主按钮文件、编辑和关于定义好;
b、然后在定义文件按钮下的保存、另存为、全选、关闭及打开按钮,并对这些进行更详细的设计和实现功能;
c、再对编辑按钮下的剪切、复制、粘贴进行设计定义和实现功能;
d、自定义类说明:
类名为JNotepad;
其作用:
是主类,其继承的父类是JFrame类。
e、定义各种监听类,用于对子菜单更能的实现。
2.2功能模块图、流程图分析
2.2.1功能模块图
父类:
JNotePad();
setUpComponent();
JMenuBar();
JMenu("
文件"
);
编辑"
查看"
格式"
帮助"
子类:
JMenuItem("
新建"
打开"
保存"
另存为"
退出"
撤销"
剪切"
复制"
粘贴"
查找"
查找下一个"
替换"
转到"
全选"
时间/日期"
自动换行"
字体"
状态栏"
帮助主题"
关于记事本"
JTextArea();
openFile();
isCurrentFileSaved();
new():
open();
saveFile();
saveFileAs();
exitFile();
undo();
cut();
copy();
paste();
del();
search();
searchNext();
replace();
turnTo();
selectAll();
time/Date();
swapLine();
font();
status();
helpTile();
about();
2.2.2流程图(手绘附报告)
3调试与性能分析
当程序完成以后我们就开始着手开始调试,在经过不停地修改后,程序终于通过啦!
在调试过程中的错误是需要一点点的找到错误的,然后耐心的读程序,找到上下代码之间的逻辑关系,然后将程序改过来。
下面是程序运行后的结果和相应的功能实现。
运行后的结果
(1)主界面
(2)文件菜单
(3)编辑菜单
(4)另存为子菜单
4参考文献
(美)Y.DanielLiang------《面向对象程序设计》
5附录(程序清单)
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.datatransfer.*;
importjava.io.*;
importjavax.swing.*;
importjavax.swing.event.*;
importjavax.swing.text.*;
publicclassJNotepadextendsJPanel
{
JTextAreajta=newJTextArea("
"
35,50);
//定义文本区域
JScrollPanejsp=newJScrollPane(jta);
//定义滚动框
JMenuBarjmb=newJMenuBar();
//定义菜单栏
JMenufile=newJMenu("
文件(F)"
//定义菜单
JMenuedit=newJMenu("
编辑(E)"
JMenuformat=newJMenu("
格式(O)"
JMenuview=newJMenu("
查看(V)"
JMenuhelp=newJMenu("
帮助(H)"
JToolBartoolBar=newJToolBar();
//定义工具栏
JMenuItemjmi;
//定义菜单项
Clipboardclipbd=getToolkit().getSystemClipboard();
Stringtext="
;
publicJNotepad()//构造函数
classnewLimplementsActionListener//新建文本区域jta的监听类
{
publicvoidactionPerformed(ActionEvente)
{
jta.setDocument(newPlainDocument());
}
}
classopenLimplementsActionListener//打开文件的监听类
JFileChooserfc=newJFileChooser();
//实现保存文件和打开文件的标准对话框
intreturnVal=fc.showDialog(JNotepad.this,"
Openfile"
if(returnVal==JFileChooser.APPROVE_OPTION)
Stringfile=fc.getSelectedFile().getPath();
//用file保存文件名
if(file==null)
return;
try//打开文件的异常处理
Readerin=newFileReader(file);
char[]buff=newchar[4096];
intnch;
while((nch=in.read(buff,0,buff.length))!
=-1)
jta.append(newString(buff,0,nch));
catch(IOExceptionio)
System.err.println
("
IOException:
"
+io.getMessage());
else
classsaveAsimplementsActionListener//另存为的监听类
intreturnVal=fc.showSaveDialog(JNotepad.this);
Stringsavefile=fc.getSelectedFile().getPath();
if(savefile==null)
StringdocToSave=jta.getText();
if(docToSave!
=null)
FileOutputStreamfstrm=null;
BufferedOutputStreamostrm=null;
try//开始保存的异常处理
fstrm=newFileOutputStream(savefile);
ostrm=newBufferedOutputStream(fstrm);
byte[]bytes=null;
try
bytes=docToSave.getBytes();
catch(Exceptione1)
e1.printStackTrace();
ostrm.write(bytes);
catch(IOExceptionio)
System.err.println("
finally
ostrm.flush();
fstrm.close();
ostrm.close();
catch(IOExceptionioe)
+ioe.getMessage());
classprintLimplementsActionListener//打印程序的监听类
{
Stringprint="
}
classexitLimplementsActionListener//退出程序的监听类
System.exit(0);
classundoLimplementsActionListener//撤销的监听类
publicvoidactionPerformed(ActionEvente)
classcutLimplementsActionListener//剪切的监听类
Stringselection=jta.getSelectedText();
StringSelectionclipString=newStringSelection(selection);
clipbd.setContents(clipString,clipString);
jta.replaceRange("
jta.getSelectionStart(),
jta.getSelectionEnd());
classcopyLimplementsActionListener//复制的监听类
classpasteLimplementsActionListener//粘贴的监听类
TransferableclipData=clipbd.getContents(JNotepad.this);
StringclipString=
(String)clipData.getTransferData(
DataFlavor.stringFlavor);
jta.replaceRange(clipString,
jta.getSelectionStart(),jta.getSelectionEnd());
catch(Exceptionex)
{
classdeleteLimplementsActionListener//删除的监听类
classfindLimplementsActionListener//查找窗口的监听类
Stringfind="
find=JOptionPane.showInputDialog("
Findwhat:
classfindNextLimplementsActionListener//查找下一个的监听类
classreplaceLimplementsActionListener//替换的监听类
publicvoidactionPerformed(ActionEvente)
classturnToLimplementsActionListener//转到的监听类
classselectAllLimplementsActionListener//全选的监听类
jta.selectAll();
classtimeDateLimplementsActionListener//时间/日期的监听类
classlineWrapLimplementsActionListener//自动换行的监听类
classfontLimplementsActionListener//字体的监听类
classstatusLimplementsActionListener//状态栏的监听类
classhelpTitleLimplementsActionListener//帮助主题的监听类
classaboutLimplementsActionListener//关于的监听类
JOptionPane.showMessageDialog(null,"
我们的记事本"
classjtaLimplementsActionListener//文本区域的监听类
file.add(jmi=newJMenuItem("
新建(N)Ctrl+N"
KeyEvent.VK_N));
//file菜单中加入子菜单
jmi.addActionListener(newnewL());
//设置子菜单的监听者
打开(O)Ctrl+O"
KeyEven
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 JAVA 记事本
![提示](https://static.bdocx.com/images/bang_tan.gif)