结对作业---简单的记事本

结对人员: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);
}
//关于作者

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

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

   

   

总的记事本截图为

四、实验心得与体会

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

 

原文地址:https://www.cnblogs.com/wang0202zhu/p/4508991.html