西南科技大学 刘涌 JAVA 实验五 - 图文

更新时间:2024-05-30 20:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

面向对象程序设计A(Java)

实验报告

实验名称:IO实验 实验类型: 指导教师:刘涌 专业班级:信安1205 姓 名:黄学强 学 号:20111849 实验地点:东六E-301 实验成绩:

日期:1

2014年4月20日

实验五 IO实验

一、实验目的

1、练习输入/输出流的创建、转换及数据访问设计方法。 二、实验内容

1、设计一个类似Windows记事本的Application应用程序 三、实验设计

1. 新建一个Application应用程序 2. 通过添加容器和GUI构件设计界面 3. 完成菜单功能的设计及事件的设计。 四、实验过程

1. 采用Java Application方式建立应用程序框架

2. 仿照Windows记事本,利用多种布局方式实现界面设计

界面设计:使用contentPane布局为BorderLayout下添加一个JTextArea定位center 在菜单插入菜单项并仿造window记事本编辑名称

3.在JTextArea下对按键消息捕获实现状态的变换(state=0为初始状态,state=1则为有编辑状态):

4.对window记事本菜单新建、打开、保存、另存在是否有标题是否编辑的情况下进行状态分析,其状态转换图如下:

2

5.定义void returnNewState()方法实现记事本初始化。定义saveUntitledFile(boolean totl,boolean state)方法保存文本,其中对是否要选择路径保存和保存后是否初始化定义了totl和state两个参数(保存代码详见附录)

6.定义int变量state标识是否有标题是否编辑的四个状态(0、1、2、3对应四个状态)

3

;定义一个File变量,保存打开的文件

新建:最后都要初始化,保存过则不需要选择保存路径 void nmuNew_actionPerformed(ActionEvent e) { switch(state) { case 0: break; case 1:

saveUntitledFile(false,true); break; case 2: returnNewState(); break;

case 3:

saveUntitledFile(true,true); break; } }

打开:选择路径文件,打开

void mnuOpen_actionPerformed(ActionEvent e) { JFileChooser jfc = new JFileChooser(); int ret=jfc.showSaveDialog(this); openFile=jfc.getSelectedFile();

this.setTitle(openFile.getName()+\记事本\ if(ret!=jfc.CANCEL_OPTION) {

state = 2;

bufferedReader in = null; try {

in = new bufferedReader(new FileReader(jfc.getSelectedFile())); string line = null; try {

4

while ( (line = in.readerLine()) != null) { txtFile.setTxt(TxtFile.getTxt() + line + \

} }

catch (IOException ex) {

} }

catch (FileNotFindException ex2) {

} } }

保存:都不需要初始化,未保存过则需要选择保存路径 void mnuSave_actionPerformed(ActionEvent e) { switch(state) { case 0:

saveUntitledFile(false,false);state=2; break; case 1:

saveUntitledFile(false,false);state=2; break; case 2:

saveUntitledFile(true,false); break; case 3:

saveUntitledFile(true,false); break; } }

另存为:都需要选择保存路径且都不需要初始化

5

void mnuSaveAs_actionPerformed(ActionEvent e) { switch(state) { case 0:

saveUntitledFile(false,false);state=2; break; case 1:

saveUntitledFile(false,false);state=2; break; case 2:

saveUntitledFile(false,false); break; case 3:

saveUntitledFile(false,false); break; } } 运行图:

6

五、实验结果

1.实现了使用JAVA运行仿window记事本的编辑文字和新建、打开、保存、另存为等功能

六、讨论与分析 1. 收获:

1.基本掌握了输入/输出流的创建、转换及数据访问设计方法 2.对事件的消息响应有了初步的了解与操作体验

3.对记事本实现基本的新建、打开、保存的基本原理及流程有了进一步的了解。 4.学会了对一些简单程序原理及实现过程的分析方法。

7

附录:

关键代码:

void saveUntitledFile(boolean totl,boolean state) {

int ret=0; if (state)

ret=JOptionPane.showOptionDialog(null,\已经打开的文件尚未保存,需要保存吗?\提示\ARNING_MESSAGE,null,null,null);

if(ret!=JOptionPane.CANCEL_OPTION) {

if(!totl&&ret==JOptionPane.YES_OPTION) {

JFileChooser jfc = new JFileChooser(); int ret1=jfc.showSaveDialog(this); if(ret1!=jfc.CANCEL_OPTION) { //save

File curFile = jfc.getSelectedFile(); if(!state) {

this.setTitle(curFile.getName()+\记事本\记事本状态蓝显示打开的文件名称

}

String s=txtFile.getText(); try {

FileWriter fw = new FileWriter(curFile); fw.write(s); fw.close(); }

catch (IOException ex) { } } } else {

String s = txtFile.getText(); try {

FileWriter fw = new FileWriter(openFile); fw.write(s); fw.close(); }

8

catch (IOException ex) { } }

}

if(state)

returnNewState(); } }

9

本文来源:https://www.bwwdw.com/article/40z6.html

Top