编写一个简单的NotePad(打开保存退出)

参考:韩顺平 循序渐进学Java ,从入门到精通


 一、需要用到的知识:

1.Java IO 流:

IO 流主要分为两类:字节流字符流

从文件读入内存为输入流,从内存写到文件中为输出流

需要了解更深入请移步到该博客 点击打开链接


2.Java图形界面

    1.菜单

        JMenuBar、 JMenu 、JMenuItem

    2.文本框:

        JTextArea

    3.监听器

        ActionListener



package Test;

/**
 * 编写一个具有 打开保存退出从NotePad
 */

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.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;

public class NotePad extends JFrame implements ActionListener{
	JTextArea jta=null;
	JMenuBar jmb=null;
	JMenu jm1=null;
	JMenuItem jmi_open=null;
	JMenuItem jmi_save=null;
	JMenuItem jmi_exit=null;
	public static void main(String[] args) {
		NotePad notePad=new NotePad();
	}
	
	
	public  NotePad() {
		jmb=new JMenuBar();
		jm1=new JMenu("文件");
		jmi_open=new JMenuItem("打开");
		jmi_save=new JMenuItem("保存");
		jmi_exit=new JMenuItem("退出");
		this.setJMenuBar(jmb);
		jmb.add(jm1);
		jm1.add(jmi_open);
		jm1.add(jmi_save);
		jm1.add(jmi_exit);
		
		//设置监听
		jmi_open.addActionListener(this);
		jmi_open.setActionCommand("open");
		jmi_save.addActionListener(this);
		jmi_save.setActionCommand("save");
		jmi_exit.addActionListener(this);
		jmi_exit.setActionCommand("exit");
		
		
		//文本框
		jta=new JTextArea();
		this.add(jta);
		this.setSize(400,300);
		this.setVisible(true);
		this.setTitle("NotePad");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}


	@Override
	public void actionPerformed(ActionEvent e) {
		JFileChooser jfc=null;
		// TODO Auto-generated method stub
		switch(e.getActionCommand()) {
		   case "open":
			   jfc=new JFileChooser();
			   jfc.setDialogTitle("请选择打开的文件");
			   jfc.showOpenDialog(null);
			   jfc.setVisible(true);
			   
			   FileReader fr=null;
			   BufferedReader br=null;
			   
			   try {
				   String fileName=jfc.getSelectedFile().getAbsolutePath();
				   fr=new FileReader(fileName);
				   br=new BufferedReader(fr);
				   
				   String str="";
				   String res="";
				   
				   while((str=br.readLine())!=null) {
					   res+=str+"\r\n"; 
				   }
				   
				   jta.setText(res);
			   } catch (FileNotFoundException e1) {
				// TODO Auto-generated catch block
				   e1.printStackTrace();
			   } catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}finally {
				try {
					fr.close();
					br.close();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
			   break; 
		   case "save":
			   System.out.println("save");
			   jfc=new JFileChooser();
			   jfc.setDialogTitle("请选择保存的路径");
			   jfc.setVisible(true);
			   jfc.showSaveDialog(null);
			   
			   FileWriter fw=null;
			   BufferedWriter bw=null;
			   
			   
			   try {
				   String fileName=jfc.getSelectedFile().getAbsolutePath();
				   
				   fw=new FileWriter(fileName);
				   bw=new BufferedWriter(fw);
				   bw.write(jta.getText());
			} catch (Exception e2) {
				// TODO: handle exception
			}finally {
				try {
					bw.close();
					fw.close();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
			   break;
			   
		   case "exit":
			   System.exit(1);
		}
		
	}
}



猜你喜欢

转载自blog.csdn.net/qq_35583772/article/details/80611951
今日推荐