zoukankan      html  css  js  c++  java
  • 结对作业---简单的记事本

    结对人员:201303011126 刘紫璇;201303011142 李阳光

    一、问题简介

        编写一个简单的记事本程序,

        要求用图形用户界面实现。能够实现新建、打开、保存、退出、编辑时间和日期、格式、帮助、关于功能。

    二、代码链接;

    https://github.com/wang0202zhu/test/blob/master/MyNotepad.java

    https://github.com/wang0202zhu/test/blob/master/MyNotepad1.java

    三、程序的测试以及截图

        我的主要任务就是实现文件栏下的新建、打开、保存、退出;和编辑的日期和时间

    而队友主要实现界面的控件,编辑下的自动换行,以及记事本的关于下的信息,以及代码的调试和测试

       实现文件下的新建编辑

                              

         Notepad类:主程序。实现各种监听。

                            public static void main(String[] args)
                                                                     { 
                                                                         new MyNotepad(); 
                                                                        }

                JTextArea类:主要的文本编辑区类,同时集成上面的menu类,基本构成该软件的主要界面和功能的封装。把menu的监听函数  

                             需要用的函数封装了一下。具体请看代码,不能单独运行出现界面:

                             JTextArea jta = new JTextArea(15,15);

                                        JScrollPane jsp = new JScrollPane(jta);

             MenuBar类:主要是工具条的元件组合,监听在notepad类内实现。可单独运行查看效果:

    层次结构图

                           

    对于文件下的新建、打开。保存、退出

              编辑控件下的时间和日期:

            

      public void actionPerformed(ActionEvent e)
    {
    //新建
            if(e.getSource()==jmi1)
    {
             jta.setText("");
        this.setTitle("New MyNoetpad");
    }
    //打开
    if(e.getSource()==jmi2)
    {
           File f1;
         JFileChooser jfc1 = new JFileChooser();
        int num1 = jfc1.showOpenDialog(this);
          if(num1==JFileChooser.APPROVE_OPTION)
    {
     try{
            f1 = jfc1.getSelectedFile();
            this.setTitle(f1.getName());
            FileReader fr = new FileReader(f1);
           BufferedReader br = new BufferedReader(fr);
            String str;
           while((str = br.readLine())!=null)
    {
            jta.setText(str);
      }
           fr.close();
          br.close();
    }

         catch(FileNotFoundException e1){
        e1.printStackTrace();
    }catch(IOException e2)

    { e2.printStackTrace();}
    }
    }
    //保存
        if(e.getSource()==jmi3)
    {
         File f2 = null;
        JFileChooser jfc2 = new JFileChooser();
        int num2 = jfc2.showSaveDialog(this);
        if(num2==JFileChooser.APPROVE_OPTION)
    {
       f2=jfc2.getSelectedFile();
        this.setTitle(f2.getName());
        try{
        FileWriter fw = new FileWriter(f2);
         BufferedWriter bw = new BufferedWriter(fw);
          bw.write(jta.getText());
         bw.close();
         fw.close();
    }catch(IOException e2)

         {e2.printStackTrace(); }
    }
    }
    //退出
         if(e.getSource()==jmi4)
    {
          int a = JOptionPane.showConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION);
         if(a==1)
    {
         this.dispose();
    }
          else if(a==0)
    {
        File f2 = null;
        JFileChooser jfc2 = new JFileChooser();
         int num2 = jfc2.showSaveDialog(this);
         if(num2==JFileChooser.APPROVE_OPTION)
    {
           f2=jfc2.getSelectedFile();
             this.setTitle(f2.getName());
    try{
           FileWriter fw = new FileWriter(f2);
           BufferedWriter bw = new BufferedWriter(fw);
            b  w.write(jta.getText());
             bw.close();
            fw.close();
    }catch(IOException e2){ e2.printStackTrace(); }
               this.dispose();
    }
    }
    }
    //日期
    if(e.getSource()==jmi5)
    {
            Calendar c1 =Calendar.getInstance();
            int y = c1.get(Calendar.YEAR);
            int m = c1.get(Calendar.MONTH);
            int d = c1.get(Calendar.DATE);
            int h = c1.get(Calendar.HOUR);
            int m1 = c1.get(Calendar.MINUTE);
            int m2 = m+1;
    jta.setText(y+"年"+m2+"月"+d+"日"+h+":"+m1);
    }
    //关于作者

    测试(由于上一次实验已经 做过测试代码的编写实验,在这里我就不在写测试代码)

     我所负责的功能实现   运行结果截图:

       

       

    总的记事本截图为

    四、实验心得与体会

          本次实验是和同学一起做的,在以前都是一个人,通过这一次的合作,我发现与同学合作也是非常省力和愉快的事情,熟话说人多力量大,虽然我们就两个人  但相对于一个人的力量来说 还是不可同时而语,在这一次实验中我们也遇到了一些问题,比如说一些符号的设置,页面控件的设定。然而这些问题我们俩都没能解决,还是通过向我们把的大学霸咨询,网上查阅资料才得以完成,听学霸说我们这就是一个小问题,不涉及整个程序的运行。还好我们最终解决了他,完成了整个程序的运行。结对项目,考验的不仅仅是个人的能力,更考验的是两个人的协作能力以及配合,个人永远只是个体,要想完成最终的目标,就要学会团队合作!

     

  • 相关阅读:
    Calculate every items’ quantity for each transaction type
    FW: Introduction to Change Data Capture (CDC) in SQL Server 2008
    过滤数据源,只显示那些符合条件的数据
    首日封, DAX
    X++中的subStr
    How to Compare two layer’s object: Get AOT objects both modified in USR & SL1 layer
    AX: grid中添加checkbox, edit 方法
    FW: Loading XML Data into SQL Server (SQL Spackle)
    How to get Record count?

  • 原文地址:https://www.cnblogs.com/wang0202zhu/p/4508991.html
Copyright © 2011-2022 走看看