java记事本代码及实验报告.doc
- 文档编号:346977
- 上传时间:2023-04-29
- 格式:DOC
- 页数:8
- 大小:58.05KB
java记事本代码及实验报告.doc
《java记事本代码及实验报告.doc》由会员分享,可在线阅读,更多相关《java记事本代码及实验报告.doc(8页珍藏版)》请在冰点文库上搜索。
一、实验内容
实验题目:
记事本应用程序设计
要求:
1.分析WINDOWS“记事本程序”各主要菜单项的功能,画出详细的程序流程图
2.设计完整的UI,并实现“文件”菜单中“新建”“打开”“保存”“另存为”“退出”等主要菜单项功能
3.将各主要菜单项的程序流程图及主要代码写入实验报告
二、实验过程
1、写出程序的程序流程图,主要是各个功能的程序流程图
开始
开始
新建打开
是否打开文件
isModifiedied
N
issave
Y
选择文件
N Y
Y N
将文件内容写入记事本
调用保存函数
初始化记事本
结束
结束
开始
开始
保存另存
弹出另存对话框
第一次保存
N
选择路径
Y
将记事本内容写入原文件
调用另存函数
文件读入记事本内容
结束
设置记事本标题为文件名
结束
开始
退出
isModified
Y N
调用保存函数
结束
2、根据程序流程图写出各个方法,新建,打开,保存,另存,退出。
三、实验结果
(应先列出测试数据,要写明实验的现象,实验数据的处理等。
对于实验结果的表述,一般有三种方法:
文字叙述(根据实验目的将实验结果系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系),图表(用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然;每一图表应有表目和计量单位,应说明一定的中心问题),屏幕截图(实验结果也可以是屏幕截图,充分表明实验的实际情况)。
在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。
)
1、记事本界面布局
2、功能描述
a、新建:
若记事本内容经过修改则提示保存;否则直接初始化记事本
b、打开:
选择打开的文件,将文件内容读出,写入记事本
c、保存:
若为第一次保存,调用另存函数;否则将文件内容存为新的记事本内容
d、另存:
选择另存路径,将记事本内容写入文件
e、退出:
若未保存或经过修改,则提示保存,调用保存函数,再退出;否则直接退出
四、讨论与分析
1、实验纠错:
a、实验中,出现打开对话框出现两次的情况,即文件选择之后又弹出对话框,需要再选择一次,但是程序中并未出现两次调用。
重新建立工程之后才解决这个错误,不过仍然不知道错误出现在哪里。
实验中,大括号的对应非常重要,应该一一对应,不然很多地方都会报错。
应该注意括号的范围。
b、文件都是保存在当前目录下。
之前的程序没有保存在当前目录,有些功能就有错,如保存功能不能实现等等。
所以后来都换成当前目录打开,保存。
2、实验结果:
实验结果与预期基本一致能实现新建,打开,保存,另存,退出功能。
但是功能很混乱,还有很多功能没有实现或者没有考虑到。
如,打开就没有再判断是否修改过文件,提示保存。
单个运行各功能问题不大,但连续运行就会出现很多不够严谨的地方。
五、附录:
关键代码
以下是记事本程序的主要功能代码:
Stringstr=newString//设了一个全局变量str保存每次功能结束后记事本的内容,便于比较记事本内容是否经过修改。
新建功能:
voidNew_actionPerformed(ActionEvente){
if(!
(jTextArea1.getText().equals(str))){
inti=JOptionPane.showConfirmDialog(null,"文件已经更改,想保存文件吗?
","记事本",
JOptionPane.YES_NO_OPTION);
if(i==JOptionPane.YES_OPTION){
exit_actionPerformed(e);
}
elseif(i==JOptionPane.NO_OPTION){
jTextArea1.setText("");
this.setTitle("无标题--记事本");
}
}
else{
jTextArea1.setText("");
this.setTitle("无标题--记事本");
}
}
打开功能:
voidopen_actionPerformed(ActionEvente){
JFileChooserjfc=newJFileChooser(".");
//JFileChooserjfc=null;
FilecurFile;
intret=jfc.showOpenDialog(null);
if(ret==jfc.APPROVE_OPTION){
curFile=jfc.getSelectedFile();
Stringname=curFile.getName();
this.setTitle(name);
try{
FileReaderfr=newFileReader(curFile);
BufferedReaderbf=newBufferedReader(fr);
Strings=bf.readLine();
jTextArea1.setText(s+"\n");
while(s!
=null){
s=bf.readLine();
jTextArea1.getText();
if(s!
=null){
jTextArea1.setText(jTextArea1.getText()+"\n"+s);
}
}
}
catch(Exceptionex1){
}
}
str=jTextArea1.getText();
}
保存功能:
voidsave_actionPerformed(ActionEvente){
JFileChooserjfc=newJFileChooser(".");
Filefile=newFile(this.getTitle());
if(!
(file.exists())){
save_as_actionPerformed(e);
}
else{
FileWriterfw=null;
try{
fw=newFileWriter(file);
BufferedWriterbw=newBufferedWriter(fw);
bw.write(jTextArea1.getText());
if(bw!
=null){
bw.close();
}
}
catch(Exceptionex){
}
}
str=jTextArea1.getText();
}
另存功能:
voidsave_as_actionPerformed(ActionEvente){
JFileChooserjfc=newJFileChooser(".");
intret=jfc.showSaveDialog(this);
if(ret==jfc.APPROVE_OPTION){
Filefile=jfc.getSelectedFile();
BufferedWriterbw=null;
try{
bw=newBufferedWriter(newFileWriter(file));
Stringbuff=jTextArea1.getText();
bw.write(buff);
if(bw!
=null){
bw.close();
}
}
catch(Exceptionex2){
}
Stringname=file.getName();
this.setTitle(name);
}
else{
jTextArea1.setText(jTextArea1.getText());
}
str=jTextArea1.getText();
}
退出功能:
//File|Exitactionperformed
publicvoidexit_actionPerformed(ActionEvente){
Strings=newString();
s=jTextArea1.getText();
if(s.equals(str)){
System.exit(0);
}
else{
inti=JOptionPane.showConfirmDialog(null,"文件已经更改,想保存文件吗?
","记事本",
JOptionPane.YES_NO_OPTION);
if(i==0){
save_actionPerformed(e);
}
else{
System.exit(0);
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 记事本 代码 实验 报告