zoukankan      html  css  js  c++  java
  • JAVA--简单记事本源代码

    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import javax.swing.*;
    import javax.swing.plaf.FileChooserUI;
    public class notepad extends JFrame implements ActionListener{
            //定义所需要的组件
        JTextArea jta=null;
        JMenuBar jmb=null;
        JMenu jm=null;
        JMenuItem jmi1=null;
        JMenuItem jmi2=null;
        public static void main(String[]args){
            new notepad();
        }
        public notepad(){
            //把组件添加到窗体上
            jta=new JTextArea();
            jmb=new JMenuBar();
            this.add(jta);
            this.setJMenuBar(jmb);
            //设置窗体属性
            this.setTitle("简易记事本");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(400, 300);
            this.setVisible(true);
            //把菜单添加进菜单条
            jm=new JMenu("文件");
            jm.setMnemonic('f');
            jmb.add(jm);
            //把子菜单加入至菜单
            jmi1=new JMenuItem("打开");
            jmi2=new JMenuItem("保存");
            jmi1.setActionCommand("open");
            jmi2.setActionCommand("save");
            jm.add(jmi1);
            jm.add(jmi2);
            //为两个字菜单注册事件监听
            jmi1.addActionListener(this);
            jmi2.addActionListener(this);
        }
        public void actionPerformed(ActionEvent e){
            //对点击了打开进行处理
            if(e.getActionCommand().equals("open")){
                  //创建一个文件选择组件
                JFileChooser jfc1=new JFileChooser();
                //设置文件选择器的名字
                jfc1.setDialogTitle("请选择文件....");
                //设置文件选择组件的类型(打开类型)
                jfc1.showOpenDialog(null);
                //显示该组件
                jfc1.setVisible(true);
                //获取选择文件的绝对路径
                String s;
                s=jfc1.getSelectedFile().getAbsolutePath();
                //将该文件显示到记事本上
                BufferedReader br=null;
                FileReader fr=null;
                try{
                    //创建一个带缓冲的文件读取对象
                    fr=new FileReader(s);
                    br=new BufferedReader(fr);
                    String text="";
                    String m=null;
                    //循环读取文件
                    while((m=br.readLine())!=null){
                        text+=m+" ";
                    }
                    //将读取的结果打印到记事本上面
                    this.jta.setText(text);
                }catch(Exception e1){
                    e1.printStackTrace();
                }
                finally{
                      //关掉打开的文件
                    try{
                    br.close();
                    fr.close();
                }catch(Exception e2){
                    e2.printStackTrace();
                }
            }
            }
            else if(e.getActionCommand().equals("save")){
                //创建一个文件选择组件
                JFileChooser jfc=new JFileChooser();
                //设置文件选择的名称
                jfc.setDialogTitle("另存为");
                //设置文件选择组件的类型(保存类型)
                jfc.showSaveDialog(null);
                //显示该组件
                jfc.setVisible(true);
                //获取选择文件的绝对路径
                String filename;
                filename=jfc.getSelectedFile().getAbsolutePath();
                //将记事本内的文本保存至该路径
                BufferedWriter bw=null;
                FileWriter fw=null;
                try{
                    //创建文件输出文件
                    fw=new FileWriter(filename);
                    bw=new BufferedWriter(fw);
                    //获取文本
                    String outtext="";
                    outtext=this.jta.getText();
                    //输出文本
                    fw.write(outtext);
                    
                }catch(Exception e2){
                    e2.printStackTrace();
                }
                finally{
                    //关闭打开的输出文件
                    try{
                        bw.close();
                        fw.close();
                    }catch(Exception e3){
                        e3.printStackTrace();
                    }
                }
            }
        }
    }

  • 相关阅读:
    官方下载python源码,编译linux版本的python
    bootstrap冻结窗口
    LeetCode之TwoSum
    MyISAM和InnoDB索引实现对比(总结)
    InnoDB的三个关键特性(总结)
    InnoDB与MyISAM总结和对比(总结)
    C++类库开发之导出类设计原则
    C++类库开发详解
    C#各种配置文件使用,操作方法总结
    C/C++代码优化的27条建议
  • 原文地址:https://www.cnblogs.com/zhouzetian/p/7606678.html
Copyright © 2011-2022 走看看