Java程序设计实验报告-JAVA记事本

华北科技学院计算机系综合性实验

实 验 报 告

课程名称        Java程序设计B               

实验学期   2011     2012  学年 第  1  学期

学生所在系部      计算机学院                  

年级   2009    专业班级    网络B093           

学生姓名           学号                        

任课教师                                       

实验成绩                                      

计算机系制


《Java程序设计B》课程综合性实验报告

开课实验室:基础实验室                                       2011 11 16

 

第二篇:java记事本代码及实验报告


一、实验内容

实验题目:记事本应用程序设计

要求:1.分析WINDOWS“记事本程序”各主要菜单项的功能,画出详细的程序流程图

2.设计完整的UI,并实现“文件”菜单中“新建”“打开”“保存”“另存为”“退出”等 主要菜单项功能

3.将各主要菜单项的程序流程图及主要代码写入实验报告

二、实验过程

1、写出程序的程序流程图,主要是各个功能的程序流程图

流程图: 可选过程: 开始流程图: 可选过程: 开始      新建                                            打开

 

流程图: 决策: 是否打开文件流程图: 决策: isModifiedied                     N

 

流程图: 决策: issave        Y

               N                         Y

       Y                                          N

 

流程图: 可选过程: 开始流程图: 可选过程: 开始        保存                                  另存

 

流程图: 决策: 第一次保存                      N

           Y

            

 

流程图: 可选过程: 开始       退出

 


         Y          N

        

 

2、根据程序流程图写出各个方法,新建,打开,保存,另存,退出。

三、实验结果

(应先列出测试数据,要写明实验的现象,实验数据的处理等。对于实验结果的表述,一般有三种方法:文字叙述(根据实验目的将实验结果系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系),图表(用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然;每一图表应有表目和计量单位,应说明一定的中心问题),屏幕截图(实验结果也可以是屏幕截图,充分表明实验的实际情况)。在实验报告中,可任选其中一种或几种方法并用,以获得最佳效果。)

1、记事本界面布局

2、功能描述

a、新建:若记事本内容经过修改则提示保存;否则直接初始化记事本

b、打开:选择打开的文件,将文件内容读出,写入记事本

c、保存:若为第一次保存,调用另存函数;否则将文件内容存为新的记事本内容

d、另存:选择另存路径,将记事本内容写入文件

e、退出:若未保存或经过修改,则提示保存,调用保存函数,再退出;否则直接退出

四、讨论与分析

1、实验纠错:

a、实验中,出现打开对话框出现两次的情况,即文件选择之后又弹出对话框,需要再选择一次,但是程序中并未出现两次调用。重新建立工程之后才解决这个错误,不过仍然不知道错误出现在哪里。

实验中,大括号的对应非常重要,应该一一对应,不然很多地方都会报错。应该注意括号的范围。

b、文件都是保存在当前目录下。之前的程序没有保存在当前目录,有些功能就有错,如保存功能不能实现等等。所以后来都换成当前目录打开,保存。

2、实验结果:

实验结果与预期基本一致能实现新建,打开,保存,另存,退出功能。但是功能很混乱,还有很多功能没有实现或者没有考虑到。如,打开就没有再判断是否修改过文件,提示保存。

单个运行各功能问题不大,但连续运行就会出现很多不够严谨的地方。

五、附录:关键代码

以下是记事本程序的主要功能代码:

String str = new String  //设了一个全局变量str保存每次功能结束后记事本的内容,便于比较记事本内容是否经过修改。

新建功能:

 void New_actionPerformed(ActionEvent e) {

    if (! (jTextArea1.getText().equals(str))) {

      int i = JOptionPane.showConfirmDialog(null, "文件已经更改,想保存文件吗?", "记事本",

                                            JOptionPane.YES_NO_OPTION);

      if (i == JOptionPane.YES_OPTION) {

        exit_actionPerformed(e);

      }

      else if (i == JOptionPane.NO_OPTION) {

        jTextArea1.setText("");

        this.setTitle("无标题--记事本");

      }

    }

    else {

      jTextArea1.setText("");

      this.setTitle("无标题--记事本");

    }

  }

打开功能 :

 void open_actionPerformed(ActionEvent e) {

    JFileChooser jfc = new JFileChooser(".");

//        JFileChooser jfc = null;

    File curFile;

    int ret = jfc.showOpenDialog(null);

    if (ret == jfc.APPROVE_OPTION) {

      curFile = jfc.getSelectedFile();

      String name = curFile.getName();

      this.setTitle(name);

      try {

        FileReader fr = new FileReader(curFile);

        BufferedReader bf = new BufferedReader(fr);

        String s = bf.readLine();

        jTextArea1.setText(s + "\n");

        while (s != null) {

          s = bf.readLine();

          jTextArea1.getText();

          if (s != null) {

            jTextArea1.setText(jTextArea1.getText() + "\n" + s);

          }

        }

      }

      catch (Exception ex1) {

      }

    }

    str = jTextArea1.getText();

  }

保存功能:

  void save_actionPerformed(ActionEvent e) {

    JFileChooser jfc = new JFileChooser(".");

    File file = new File(this.getTitle());

    if (! (file.exists())) {

      save_as_actionPerformed(e);

    }

    else {

      FileWriter fw = null;

      try {

        fw = new FileWriter(file);

        BufferedWriter bw = new BufferedWriter(fw);

        bw.write(jTextArea1.getText());

        if (bw != null) {

          bw.close();

        }

      }

      catch (Exception ex) {

      }

    }

    str = jTextArea1.getText();

  }

另存功能:

 void save_as_actionPerformed(ActionEvent e) {

    JFileChooser jfc = new JFileChooser(".");

    int ret = jfc.showSaveDialog(this);

    if (ret == jfc.APPROVE_OPTION) {

      File file = jfc.getSelectedFile();

      BufferedWriter bw = null;

      try {

        bw = new BufferedWriter(new FileWriter(file));

        String buff = jTextArea1.getText();

        bw.write(buff);

        if (bw != null) {

          bw.close();

        }

      }

      catch (Exception ex2) {

      }

      String name = file.getName();

      this.setTitle(name);

    }

    else {

      jTextArea1.setText(jTextArea1.getText());

    }

    str = jTextArea1.getText();

  }

退出功能:

  //File | Exit action performed

  public void exit_actionPerformed(ActionEvent e) {

    String s = new String();

   s = jTextArea1.getText();

   if (s.equals(str)) {

     System.exit(0);

   }

   else {

     int i = JOptionPane.showConfirmDialog(null, "文件已经更改,想保存文件吗?", "记事本",

                                           JOptionPane.YES_NO_OPTION);

     if (i == 0) {

       save_actionPerformed(e);

     }

     else {

       System.exit(0);

     }

   }

  }


相关推荐