Java记事本课程设计报告.docx
- 文档编号:27571641
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:29
- 大小:288.45KB
Java记事本课程设计报告.docx
《Java记事本课程设计报告.docx》由会员分享,可在线阅读,更多相关《Java记事本课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。
Java记事本课程设计报告
Java记事本课程设计报告
XXXXXXXX计算机学院
课程设计报告书
学生姓名:
XXXX
学院:
计算机学院
专业班级:
软件工程
专业课程:
JAVA语言程序设计
指导教师:
2014年6月13日
题目
记事本的设计与实现
考核项目
考核内容
得分
平时考核
(30分)出勤情况、态度、效率;知识掌握情况、基本操作技能、知识应用能力、获取知识能力
系统设计
(20分)分析系统的功能模块
编程调试
(20分)实现系统的各个功能模块,并完成调试
回答问题
(15分)回答老师针对课程设计提出的问题
课程设计报告撰写
(10分)严格按照规范要求完成课程设计报告
源代码
(5分)要个按照规范要求完成课程设计源代码的排版
总评成绩
指导教师评语:
日期:
年月日
第1章系统设计目的.............................1
第2章系统实现思路..............................2
第3章系统详细设计..............................3
第4章系统调试运行..............................7
第5章课程设计体会..............................8
第6章参考文献..................................9
第7章附录...............................10
第1章系统设计目的
1.1复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
1.2课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;
1.3培养学生在项目开发中团队合作精神,创新意识及能力
1.4掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法
1.5掌握JAVA语言常用类包及其常用方法和JAVA语言基本语法
第2章系统实现思路
2.1总体功能实现
图2.1总体功能实现
图2.2记事本
2.2菜单操作流程图
图2.2“文件”菜单操作流程图
2.3“编辑”菜单操作流程图
2.4“帮助”菜单操作流程图
第3章系统详细设计
3.1界面设计
创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。
主要代码:
JMenuBarmenub=newJMenuBar();
JTextAreatext=newJTextArea();
JMenufiles=newJMenu("文件(F)");
JMenuedit=newJMenu("编辑(E)");
JMenuformats=newJMenu("格式(O)");
JMenuhelp=newJMenu("帮助(H)");
JMenuItemnewFile=newJMenuItem("新建(N)");
JMenuItemopen=newJMenuItem("打开(O)...");
JMenuItemsave=newJMenuItem("保存(S)");
JMenuItemexit=newJMenuItem("退出(X)");
JMenuItemcut=newJMenuItem("剪切(T)");
JMenuItemcopy=newJMenuItem("复制(C)");
JMenuItempaste=newJMenuItem("粘贴(P)");
JMenuItemselectAll=newJMenuItem("全选(A)");
JMenuItemcolor=newJMenuItem("字体颜色(C)...");
JMenuItemabout=newJMenuItem("关于记事本(A)");
3.2窗口大小
主要代码:
Notebook(Stringname)
{
super(name);
this.name=name;
intx,y;
Dimensionsize=Toolkit.getDefaultToolkit().getScreenSize();
x=(size.width-600)/2;
y=(size.height-400)/2;
setSize(600,400);
setLocation(x,y);
setMinimumSize(newDimension(250,150));
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
3.3定义快捷键
主要代码:
files.setMnemonic('F');
edit.setMnemonic('E');
formats.setMnemonic('O');
help.setMnemonic('H');
newFile.setMnemonic('N');
open.setMnemonic('O');
save.setMnemonic('S');
exit.setMnemonic('X');
cut.setMnemonic('T');
copy.setMnemonic('C');
paste.setMnemonic('P');
selectAll.setMnemonic('A');
color.setMnemonic('C');
about.setMnemonic('A');
newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));
cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
3.4功能代码
新建:
if(source==newFile)
{
text.setText("");
th.setTitle(name);
openedPath=null;
opened=false;
}
退出:
elseif(source==exit)
{
System.exit(0);
}
全选:
elseif(source==selectAll)
text.selectAll();
剪贴:
elseif(source==cut)
text.cut();
复制:
elseif(source==copy)
text.copy();
粘贴:
elseif(source==paste)
text.paste();
关于:
elseif(source==about)
{
JFrameabout=newJFrame("记事本");
JLabellabel1=newJLabel("记事本");
JLabellabel2=newJLabel("作者:
XX");
JLabellabel3=newJLabel("电子邮箱:
XXXXXXXXXX");
}
保存:
elseif(source==save)
{
StringsavePath=openedPath;
if(savePath==null)
{
FileDialogsaveFile=newFileDialog(th,"保存文件...",FileDialog.SAVE);
saveFile.setVisible(true);
savePath=saveFile.getDirectory()+saveFile.getFile();
}
try
{
FileOutputStreamfos=newFileOutputStream(savePath);
fos.write(text.getText().getBytes());
fos.close();
}
catch(Exceptionex)
{
ex.printStackTrace();
}
if(source==save)
openedPath=savePath;
}
打开:
if(source==open)
{
FileDialogopenFile=newFileDialog(th,"打开文件...",FileDialog.LOAD);
openFile.setVisible(true);
StringfilePath=openFile.getDirectory()+openFile.getFile();
try
{
FileInputStreamfis=newFileInputStream(filePath);
byte[]content=newbyte[fis.available()];
fis.read(content);
text.setText(newString(content));
text.setCaretPosition(0);
if(openFile.getFile()!
=null)
{
th.setTitle(openFile.getFile()+name);
openedPath=filePath;
opened=true;
}
fis.close();
}
catch(Exceptionex)
{
ex.printStackTrace();
}
opened=true;
}
颜色:
elseif(source==color)
{
Colorcolor=JColorChooser.showDialog(text,"选择颜色",Color.BLACK);
text.setForeground(color);
}
第4章系统调试运行
4.1“文件”运行状况
图4.1文件
4.2“编辑”运行状况
图4.2编辑
4.3“格式”运行状况
图4.3格式
4.4“帮助”运行状况
图4.4帮助
第5章课程设计体会
这次综合实验我很早就开始准备了,在代码上花费的时间也很多。
我深深地体会到编出一个程序是不容易的,编好一个程序更是不容易的。
在很多功能上,比如说在“关闭”“新建”“打开”记事本时,如果文本没保存或者又被修改,要弹出“询问保存”的对话框,我设置好这一项后,再测试,另一项又出问题了,反复测试反复修改,研究问题的所在。
其实这些或许是没必要的,但是一个程序真正的要做到“健壮性”不出现BUG,确实要下功夫的。
通过这次实验,我还明白了,我们应该学会是如何学习的方法而不仅仅是知识。
JAVA世界很大很开阔,书上的
那些知识太少了,课堂上的时间是有限的,我们应该掌握的是学习的方法,比如说学会如果查API解决问题。
读别人的程序是一个不错的方法,在别人的程序中我学到了很多知识。
可能仅仅是几句代码就会使程序得到很大的改善。
比如说我记事本构造方法开头中有一个设置“观感”的语句,这就是我在看别人的程序时看到的,加上这几句后记事本的样式就得到了很大改变,看上去和Windows的记事本差不了多少了。
编程序还是要多练习,练得多了就熟练了,对知识的掌握也更加深入了。
这次综合实验是我第一次独立地编写了一个完整的程序,虽然还有很多不足,但毕竟也是自己的心血啊,对于这个结果自己还是很满意很欣慰的,更重要的是我收获了很多,无论是专业知识还是学习方法,我相信对我以后的生活和学习都会产生积极影响的!
第6章参考文献
1:
孙涛,Java语言课程设计实践教程.北京:
清华大学出版社,2012.
2:
张思民.Java语言程序设计.北京:
清华大学出版社,2007.
附录:
源代码
importjava.io.*;
importjava.awt.*;
importjavax.swing.*;
importjava.util.Date;
importjava.awt.event.*;
publicclassNotebookextendsJFrame
{
JMenuBarmenub=newJMenuBar();
JTextAreatext=newJTextArea();
JMenufiles=newJMenu("文件(F)");
JMenuedit=newJMenu("编辑(E)");
JMenuformats=newJMenu("格式(O)");
JMenuhelp=newJMenu("帮助(H)");
JMenuItemnewFile=newJMenuItem("新建(N)");
JMenuItemopen=newJMenuItem("打开(O)...");
JMenuItemsave=newJMenuItem("保存(S)");
JMenuItemexit=newJMenuItem("退出(X)");
JMenuItemcut=newJMenuItem("剪切(T)");
JMenuItemcopy=newJMenuItem("复制(C)");
JMenuItempaste=newJMenuItem("粘贴(P)");
JMenuItemselectAll=newJMenuItem("全选(A)");
JMenuItemcolor=newJMenuItem("字体颜色(C)...");
JMenuItemabout=newJMenuItem("关于记事本(A)");
JPopupMenupopupMenu=newJPopupMenu();
JMenuItemMenuMouseCut=newJMenuItem("剪切(T)");
JMenuItemMenuMouseCopy=newJMenuItem("复制(C)");
JMenuItemMenuMousePaste=newJMenuItem("粘贴(P)");
JMenuItemMenuMouseselectAll=newJMenuItem("全选(A)");
JFrameth=this;
Stringname;
StringopenedPath=null;
booleanopened=false;
booleanreworked=false;
Notebook(Stringname)
{
super(name);
this.name=name;
intx,y;
Dimensionsize=Toolkit.getDefaultToolkit().getScreenSize();
x=(size.width-600)/2;
y=(size.height-400)/2;
setSize(600,400);
setLocation(x,y);
setMinimumSize(newDimension(250,150));
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
voidinit()
{
files.setMnemonic('F');
edit.setMnemonic('E');
formats.setMnemonic('O');
help.setMnemonic('H');
newFile.setMnemonic('N');
open.setMnemonic('O');
save.setMnemonic('S');
exit.setMnemonic('X');
cut.setMnemonic('T');
copy.setMnemonic('C');
paste.setMnemonic('P');
selectAll.setMnemonic('A');
color.setMnemonic('C');
about.setMnemonic('A');
newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));
cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
files.add(newFile);
files.add(open);
files.add(save);
files.addSeparator();
files.add(exit);
edit.addSeparator();
edit.add(cut);
edit.add(copy);
edit.add(paste);
edit.addSeparator();
edit.add(selectAll);
formats.add(color);
help.add(about);
menub.add(files);
menub.add(edit);
menub.add(formats);
menub.add(help);
setJMenuBar(menub);
getContentPane().add(newJScrollPane(text));
popupMenu.add(MenuMouseCut);
popupMenu.add(MenuMouseCopy);
popupMenu.add(MenuMousePaste);
popupMenu.add(MenuMousePaste);
popupMenu.add(MenuMouseselectAll);
Listenlisten=newListen();
Listen1listen1=newListen1();
newFile.addActionListener(listen);
open.addActionListener(listen);
save.addActionListener(listen);
exit.addActionListener(listen);
cut.addActionListener(listen);
copy.addActionListener(listen);
paste.addActionListener(listen);
selectAll.addActionListener(listen);
color.addActionListener(listen);
about.addActionListener(listen);
open.addActionListener(listen1);
save.addActionListener(listen1);
text.addMouseListener(newMouseAdapter()
{
publicvoidmousePressed(MouseEvente){checkForTriggerEvent(e);}
publicvoidmouseReleased(MouseEvente){checkForTriggerEvent(e);}
privatevoid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 记事本 课程设计 报告