• 第十三周课程总结


    记事本部分

    1.代码源

    package 部分;
    
    
    import javax.swing.*; 
      
    import java.awt.*; 
    import java.awt.event.*; 
    import java.io.*; 
      
    public class kk { 
        
      //定义组件: 
      JFrame f; 
      MenuBar mb;  //菜单栏 
      Menu mu;    //菜单 
      JTextArea jta; 
      MenuItem openItem, saveItem, closeItem;  //子菜单 
      FileDialog openDia,saveDia;  //弹出的保存和打开框 
        
      File file; 
        
        
      //构造函数 
      public kk() 
      { 
        //调用初始化函数 
        init(); 
      } 
      //对组件进行初始化操作 
      public void init() 
      { 
        f=new JFrame("简易记事本"); 
        mb=new MenuBar(); 
        mu=new Menu("文件"); 
        openItem=new MenuItem("打开"); 
        saveItem=new MenuItem("保存"); 
        closeItem=new MenuItem("退出"); 
        jta=new JTextArea(); 
          
        f.add(jta); 
          
        //添加 
        mu.add(openItem); 
        mu.add(saveItem); 
        mu.add(closeItem); 
          
        mb.add(mu); 
          
        f.setMenuBar(mb); 
          
        openDia=new FileDialog(f, "打开", FileDialog.LOAD); 
        saveDia=new FileDialog(f, "保存", FileDialog.SAVE); 
          
        //设置JFrame属性 
        f.setBounds(200, 300, 500, 400); 
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        f.setVisible(true); 
          
        //调用事件函数 
        event(); 
          
      } 
        
      //事件函数,对事件进行处理 
      public void event() 
      { 
        //打开选项 
        openItem.addActionListener(new ActionListener() 
        { 
      
          @Override
          public void actionPerformed(ActionEvent e) { 
              
          //调用打开文件的方法 
            openFile(); 
                    
          } 
            
            
        }); 
          
        //保存选项 
        saveItem.addActionListener(new ActionListener() 
        { 
      
          @Override
          public void actionPerformed(ActionEvent e) { 
            
          //调用保存文件的方法。 
           saveFile();   
              
          } 
            
            
        }); 
        //添加一个文本区域的事件,即按下Ctrl+S可以保存 
        //因为键盘监听事件有多种方法,而我们只需要其中的一种,所以可以使用适配器KeyAdapter, 
        //从而只需要实现一种方法即可 
        jta.addKeyListener(new KeyAdapter() 
        { 
          //键盘按下方法 
          public void keyPressed(KeyEvent e){ 
        
            if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S) 
            { 
              //调用保存文件的方法。 
               saveFile();   
              //JOptionPane.showMessageDialog(null, "对啦"); 
            } 
          } 
        }); 
          
        //关闭选项 
        closeItem.addActionListener(new ActionListener() 
        { 
      
          @Override
          public void actionPerformed(ActionEvent e) { 
            
            //退出系统 
            System.exit(0); 
              
          } 
            
        }); 
      } 
        
      //打开文本的方法 
      public void openFile() 
      { 
        openDia.setVisible(true); //设置其显示出来 
          
        //获取路径和文件名 
        String dirPath=openDia.getDirectory(); 
        String fileName=openDia.getFile(); 
          
        //防止点击取消报错 
        if(dirPath==null || fileName==null) 
          return ; 
          
        jta.setText(""); //将文本区域清空 
          
        file=new File(dirPath,fileName); //建立文件对象 
          
        //按照行来读取数据,显示在文本区域 
        try
        { 
          BufferedReader br = new BufferedReader(new FileReader(file)); 
      
          String line = null; 
      
          while((line=br.readLine())!=null) 
          { 
            jta.append(line+"
    "); 
          } 
      
          br.close(); 
        } 
        catch (IOException ex) 
        { 
          throw new RuntimeException("读取失败"); 
        } 
      } 
      //保存文本的方法。 
      public void saveFile() 
      { 
        //先判断文件是否存在 
        if(file==null) 
        { 
          saveDia.setVisible(true); 
            
          String dirPath = saveDia.getDirectory(); 
          String fileName = saveDia.getFile(); 
            
          //防止点击取消报错 
          if(dirPath==null || fileName==null) 
            return ;   
          //因为文件不存在。所以需要建立file对象 
          file = new File(dirPath,fileName);        
        } 
          
        //将数据写入文件 
        try { 
          BufferedWriter bw=new BufferedWriter(new FileWriter(file)); 
            
          String info=jta.getText(); //得到文本区域的信息 
            
          bw.write(info); //写入操作 
          bw.flush(); 
          bw.close(); 
            
        } catch (IOException e1) { 
            
          throw new RuntimeException(); 
        }     
          
      } 
        
        
      public static void main(String[] args) { 
          
          //创建对象 
        new kk(); 
      } 
      
    }

    2.运行结果图

    3.所学的知识

    4.总结

    感觉自己又学到了东西,c语言对比。

    java的前缀好多,要记下来。

    上面是写了的部分记事本代码。

    因为不是很会,所以后面准备完善它。。

  • 相关阅读:
    斯坦福大学Andrew Ng教授主讲的《机器学习》公开课观后感
    关于内推,你该知道的点点滴滴
    向大学说拜拜——大学 > 兴趣 + 时间 + 思考 + 实践
    源码浅析:InnoDB聚集索引如何定位到数据的物理位置,并从磁盘读取
    5.7.17版本mysqlbinlog实时拉取的二进制日志不完整的原因分析
    InnoDB的ibd数据文件为什么比data_length+index_length+data_free的总和还要大?
    gh-ost工具在线改表过程的详细解析
    MySQL5.7 使用utf8mb4字符集比latin1字符集性能低25%,你敢信?
    通过slow query log可以查出长时间未提交的事务吗?用实验+源码来揭晓答案
    源码浅析:MySQL一条insert操作,会写哪些文件?包括UNDO相关的文件吗?
  • 原文地址:https://www.cnblogs.com/Allen15773771785/p/11910423.html
Copyright © 2020-2023  润新知