一个简单的Java IO流写的记事本

//主要的就是刚学习Java中的GUI和IO流,弄个记事本玩一玩。

public class Notepad extends JFrame implements ActionListener{

	JMenuBar jmb;  //菜单栏 
	JMenu jm; //菜单
	JMenuItem jmi1,jmi2; //菜单项
	JTextArea jta;      //用来写文字的文本域
	JScrollPane jsp;   // 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口
	
	public static void main(String[] args) {
		Notepad np = new Notepad();
	}
	
	public Notepad(){
		jmb = new JMenuBar();

		jm = new JMenu("菜单(f)");
		jm.setMnemonic('f');  //创建快捷方式Alt+f
		
		jmi1 = new JMenuItem("打开");
		jmi1.addActionListener(this);
		jmi1.setActionCommand("open");
		
		jmi2 = new JMenuItem("保存");
		jmi2.addActionListener(this);
		jmi2.setActionCommand("save");
		
		jta = new JTextArea();
		jsp = new JScrollPane(jta);
		
		jm.add(jmi1);
		jm.add(jmi2);
		
		jmb.add(jm);
		
		
		this.setJMenuBar(jmb);
		this.add(jsp);
		
		this.setSize(400, 300);
		this.setLocation(300, 300);
		this.setTitle("记事本");
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("open")){
			JFileChooser jf = new JFileChooser();   //JFileChooser 为用户选择文件提供了一种简单的机制
			jf.showOpenDialog(this);   //弹出一个 "Open File" 文件选择器对话框
			jf.setToolTipText("打开");   //注册要在工具提示中显示的文本
			String path = jf.getSelectedFile().getAbsolutePath();  //返回选中的文件的绝对路径
			try {
				BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
				StringBuffer stb = new StringBuffer();
				String str = "";
				while((str = br.readLine())!=null){ //一行一行的循环读取数据
					stb.append(str+"\r\n");
				}
				jta.setText(stb.toString());  //一定要调用toString方法
				br.close();
			} catch (FileNotFoundException e1) {
				e1.printStackTrace();
			} catch (IOException e2) {
				e2.printStackTrace();
			}
		}else if(e.getActionCommand().equals("save")){
			JFileChooser jf = new JFileChooser();
			jf.showSaveDialog(this); //弹出一个 "Save File" 文件选择器对话框
			jf.setToolTipText("保存");
			String path = jf.getSelectedFile().getAbsolutePath();
			try {
				BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path)));
				bw.write(jta.getText());
				bw.close();
			} catch (FileNotFoundException e1) {
				e1.printStackTrace();
			} catch (IOException e2) {
				e2.printStackTrace();
			}
		}		
	}	
}
 
 

你可能感兴趣的:(Java)