黑马程序员_java小程序——实现简单记事本的打开保存功能

来源:互联网 发布:java工程师累不累 编辑:程序博客网 时间:2024/05/16 02:01

       ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! --

       记事本是我们常用到的一款软件,其中我们比较常用的功能就是它的打开和保存文件功能。这里面涉及到了文件流、图形界面的操作。本人写了一个小程序来完成基本的操作。

/*
 * 记事本
 * */
package com.excese;
import java.io.*;
import java.awt.*;
import javax.swing.*;

import java.awt.event.*;
public class Excese1 extends JFrame implements ActionListener{
//定义组件
    JMenuBar jmb;
    JMenu jm1,jm2,jm3,jm4,jm5;
    JMenuItem jm1_jmi1,jm1_jmi2,jm1_jmi3,jm1_jmi4;
    JTextArea jta;
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Excese1 e1=new Excese1();
    }
public Excese1() {
    //处理文本域
    jta=new JTextArea();
    //处理第文件菜单
    jm1=new JMenu("文件(F)");
    //处理打开按钮
    jm1_jmi1=new JMenuItem("打开");
    jm1_jmi1.setMnemonic('O');
    jm1.add(jm1_jmi1);
    jm1_jmi1.setActionCommand("open");
    jm1_jmi1.addActionListener(this);
    //处理保存按钮
    jm1_jmi2=new JMenuItem("保存");
    jm1_jmi2.setMnemonic('S');
    jm1_jmi2.setActionCommand("save");
    jm1_jmi2.addActionListener(this);
    jm1.add(jm1_jmi2);
    jm2=new JMenu("编辑(E)");
    jm3=new JMenu("格式");
    jm4=new JMenu("帮助");
    jm5=new JMenu("文件");
    jmb=new JMenuBar();
    jmb.add(jm1);
    jmb.add(jm2);
    jmb.add(jm3);
    jmb.add(jm4);
    jmb.add(jm5);
    
    //jm1.setMnemonic('F');
    //添加组件
    
    //this.add(jmb);
    this.add(jta);
    this.setJMenuBar(jmb);
    //设置窗口属性
    this.setTitle("记事本");
    this.setSize(400,300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
    
}
@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getActionCommand().equals("open")){
    JFileChooser jfc=new JFileChooser();//文件选择组件
    jfc.setDialogTitle("请选择文件...");//给文件选择组件设置标题
    jfc.showOpenDialog(jm1_jmi1);//显示打开的对话框
    jfc.setVisible(true);//显示文件选择窗口
    //得到选择的文件的路径
    String filePath=jfc.getSelectedFile().getAbsolutePath();
    BufferedReader br=null;
    try {
        br=new BufferedReader(new FileReader(filePath));
        String s="";
        String sAll="";
        try {
            while((s=br.readLine())!=null){
            sAll+=s+"\r\n";    
            }
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        jta.setText(sAll);
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }finally{
        try {
            br.close();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
    }else if(e.getActionCommand().equals("save")){
        JFileChooser jfc=new JFileChooser();
        jfc.setDialogTitle("保存为...");
        jfc.showSaveDialog(null);
        jfc.setVisible(true);
        //得到选择的文件的路径
        String sPath=jfc.getSelectedFile().getAbsolutePath();
        //存储
        BufferedWriter bw=null;
        try {
            bw=new BufferedWriter(new FileWriter(sPath));
            bw.write(this.jta.getText());
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }finally{
            try {
                bw.close();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
        
    }
}
}

运行结果:

 

打开功能

保存功能



0 0
原创粉丝点击