打开和保存java源码(有待优化)

来源:互联网 发布:卫视直播软件 电脑版 编辑:程序博客网 时间:2024/05/29 11:14
package com.test1;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import javax.swing.ImageIcon;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JTextArea;public class Demo4 extends JFrame implements ActionListener {// 定义JTextAreaJTextArea jta = null;// 菜单条JMenuBar jmb = null;// 第一JMenuItemJMenu jm1 = null;// 定义JMenuItemJMenuItem jmi1 = null;JMenuItem jmi2 = null;public static void main(String[] args) {Demo4 demo4 = new Demo4();}public Demo4() {// 创建jtajta = new JTextArea();jmb = new JMenuBar();jm1 = new JMenu("文件");jmi1 = new JMenuItem("打开(O)", new ImageIcon("dakai.jpg"));jmi2 = new JMenuItem("保存(S)", new ImageIcon("baocun.jpg"));// jm1设置助记符jm1.setMnemonic('F');// 注册监听jmi1.addActionListener(this);jmi1.setActionCommand("open");jmi2.addActionListener(this);jmi2.setActionCommand("save");// 加入this.setJMenuBar(jmb);// jm1放入到jmbjmb.add(jm1);// jmi1(2)放到jm1jm1.add(jmi1);jm1.add(jmi2);// 放入到JFramethis.add(jta);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(400, 300);this.setVisible(true);}// 用户点击的是什么菜单@Overridepublic void actionPerformed(ActionEvent e) {// 判断是哪个菜单被选中if (e.getActionCommand().equals("open")) {// System.out.println("open");// JFileChooserJFileChooser jfc1 = new JFileChooser();// 设置名字jfc1.setDialogTitle("请选择文件");// 默认方式jfc1.showOpenDialog(null); // null表示使用默认的窗口// 显示jfc1.setVisible(true);//得到用户选择文件的路径String filename = jfc1.getSelectedFile().getAbsolutePath();//System.out.println(filename);FileReader fr = null;BufferedReader br = null;try {fr = new FileReader(filename);br = new BufferedReader(fr);//从文件中读取并显示到jtaString s = "";String allCon = "";while((s = br.readLine()) != null) {allCon += s + "\r\n";}//放置到jta中jta.setText(allCon);}catch (Exception e2) {e2.printStackTrace();}finally {try {br.close();fr.close();}catch (Exception e3) {e3.printStackTrace();}}}else if (e.getActionCommand().equals("save")) {//System.out.println("save");JFileChooser jfc = new JFileChooser();jfc.setDialogTitle("另存为...");jfc.showSaveDialog(null);jfc.setVisible(true);//得到用户希望吧文件保存到何处//文件的全路径String file = jfc.getSelectedFile().getAbsolutePath();//准备卸去到指定文件FileWriter fw = null;BufferedWriter bw = null;try {fw = new FileWriter(file);bw = new BufferedWriter(fw);bw.write(this.jta.getText());}catch (Exception e2) {e2.printStackTrace();}finally {try {bw.close();fw.close();}catch (Exception e3) {e3.printStackTrace();}}}}}

1 0
原创粉丝点击