【java复习】简单的记事本功能开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuewen2008/article/details/81910520

主要界面

这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述

主要功能

1、用户点击打开按钮可以打开电脑中的相应文件,文件内容可以在记事本界面中显示
2、用户修改文件内容点击保存可以保存修改后的文件内容。
3、用户点击关于查看记事本版本信息。

实现代码

/*
 * 记事本开发:
 * 主要功能:打开文件,编辑后可以保存
 * 需要界面加功能开发
 * */

package com.fox.test9;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.*;

public class NotePad extends JFrame implements ActionListener{

    //定义需要的组件
    JTextArea jta=null;
    //菜单栏
    JMenuBar jmb =null;
    JMenu jmFile =null;
    JMenu jmEdit =null;
    JMenu jmStyle =null;
    JMenu jmAbout =null;


    //文件子菜单
    JMenuItem jmiNew =null;
    JMenuItem jmiOpen =null;
    JMenuItem jmiSave =null;
    JMenuItem jmiExit =null;

    //编辑子菜单
    JMenuItem jmiCopy =null;
    JMenuItem jmiCut =null;
    JMenuItem jmiPaste =null;

    JMenuItem jmiAbout =null;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        NotePad np = new NotePad();
    }
    public NotePad() {
        jta = new JTextArea();
        jmb = new JMenuBar();
        //创建一级菜单
        jmFile = new JMenu("文件");
        jmEdit = new JMenu("编辑");
        jmStyle = new JMenu("格式");
        jmAbout = new JMenu("关于");


        //创建一级菜单 文件的 子菜单
        jmiNew = new JMenuItem("新建");
        jmiOpen =new JMenuItem("打开");
        jmiSave = new JMenuItem("保存");
        jmiExit = new JMenuItem("退出");

        //创建一级菜单 编辑的子菜单
        jmiCopy = new JMenuItem("复制");
        jmiCut =new JMenuItem("剪切");
        jmiPaste = new JMenuItem("粘贴");

        //创建一级菜单 关于的子菜单
        jmiAbout = new JMenuItem("关于记事本");

        //添加组件
        this.add(jta);
        //添加菜单栏
        this.setJMenuBar(jmb);
        //添加一级菜单项
        jmb.add(jmFile);
        jmb.add(jmEdit);
        jmb.add(jmStyle);
        jmb.add(jmAbout);

        //添加一级菜单文件的子菜单
        jmFile.add(jmiNew);
        jmFile.add(jmiOpen);
        jmFile.add(jmiSave);
        jmFile.add(jmiExit);

        //添加一级菜单编辑的子菜单
        jmEdit.add(jmiCopy);
        jmEdit.add(jmiCut);
        jmEdit.add(jmiPaste);

        //添加一级菜单关于的子菜单
        jmAbout.add(jmiAbout);

        //注册点击监听事件
        //注册打开按钮监听
        jmiOpen.addActionListener(this);
        jmiOpen.setActionCommand("open");

        //注册保存按钮监听
        jmiSave.addActionListener(this);
        jmiSave.setActionCommand("save");

        //注册退出按钮监听
        jmiExit.addActionListener(this);
        jmiExit.setActionCommand("exit");

        //注册关于按钮的监听事件
        jmiAbout.addActionListener(this);
        jmiAbout.setActionCommand("about");

        //设置组件
        this.setTitle("记事本");//设置标题
        this.setLocation(200, 200);//设置界面起始位置
        this.setSize(400,500);//界面大小
        this.setVisible(true);//显示界面

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时保证jvm虚拟机也退出,关闭时节省系统资源
    }

    //监听事件处理函数
    public void actionPerformed(ActionEvent arg0) {
        if(arg0.getActionCommand().equals("open"))
        {
            //文件选择类
            JFileChooser jfc = new JFileChooser();
            jfc.setDialogTitle("打开文件...");
            jfc.showOpenDialog(null);
            jfc.setVisible(true);

            //得到用户选择的文件绝对路径
            String filename =jfc.getSelectedFile().getAbsolutePath();
            //System.out.println(filename);

            //使用BufferedReader类读取文件内容显示到文本框中
            BufferedReader br =null;
            FileReader fr= null;
            //FileWriter fw=null;

            try {
                fr = new FileReader(filename);
                br = new BufferedReader(fr);
                //读取文件
                String s="";
                String allString="";
                while((s=br.readLine())!=null) {
                    allString+=s+"\r\n";
                    jta.setText(allString);
                }

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                try {
                    br.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }else if(arg0.getActionCommand().equals("save"))
        {
            //文件选择类
            JFileChooser jfc = new JFileChooser();
            jfc.setDialogTitle("保存文件...");
            jfc.showSaveDialog(null);
            jfc.setVisible(true);

            //得到用户选择的文件绝对路径
            String filename =jfc.getSelectedFile().getAbsolutePath();

            //使用BufferedWriter类将文本框中的内容写入到文件中
            BufferedWriter bw =null;
            FileWriter fw=null;
            try {
                fw= new FileWriter(filename);
                bw = new BufferedWriter(fw);

                bw.write(jta.getText());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                try {
                    bw.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }else if(arg0.getActionCommand().equals("exit"))
        {
            //System.out.println("exit");
            System.exit(0);
        }else if(arg0.getActionCommand().equals("about"))
        {
            //System.out.println("about");

             JDialog dialog = new JDialog(this, "关于记事本", true);
             JLabel  jlb = new JLabel();
             jlb.setText("这是记事本1.0版");
             dialog.add(jlb);
             dialog.setSize(250, 150);
             dialog.setResizable(false);
             dialog.setVisible(true);
        }

    }
}

猜你喜欢

转载自blog.csdn.net/yuewen2008/article/details/81910520