Java简单记事本实现

 涉及的知识点:GUI界面,IO操作,事件监听。示例代码如下:

package ioTest;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
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 NotePad extends JFrame implements ActionListener{
	JTextArea jta=null;
	JMenuBar jmb=null;
	JMenu jm=null;
	JMenuItem jmi=null;
	JMenuItem jmi2=null;
	public static void main(String[] args) {
		NotePad np=new NotePad();
	}
	public NotePad(){
		jta=new JTextArea();
		jmb=new JMenuBar();
		jm=new JMenu("文件");
		jm.setMnemonic('f');//设置快捷键
		jmi=new JMenuItem("打开",new ImageIcon("D:\\javaSpace\\test_1\\src\\3.gif"));
		//注册监听
		jmi.addActionListener(this);
		jmi.setActionCommand("open");
		
		jmi2=new JMenuItem("保存");
		jmi2.addActionListener(this);
		jmi2.setActionCommand("save");
		
		this.setJMenuBar(jmb);
		jmb.add(jm);
		jm.add(jmi);
		jm.add(jmi2);
		this.add(jta);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(400,300);
		this.setVisible(true);
	}
	@Override
	public void actionPerformed(ActionEvent arg0) {
		if(arg0.getActionCommand().equals("open")){
			//出现选择文件对话框
			JFileChooser jfc=new JFileChooser();
			jfc.setDialogTitle("请选择文件...");
			int value=jfc.showOpenDialog(null);//按默认方式显示
			jfc.setVisible(true);
			
			if(value==JFileChooser.APPROVE_OPTION){
				String filename=jfc.getSelectedFile().getAbsolutePath();
				//System.out.println("test");
				FileReader fr=null;
				BufferedReader br=null;
				try{
					fr=new FileReader(filename);
					br=new BufferedReader(fr);

					String s,all = "";
					while((s=br.readLine())!=null){
						all+=s+"\r\n";
					}
					jta.setText(all);
				}catch(Exception e){
					e.printStackTrace();
				}finally{
					try {
						br.close();
						fr.close();
					} catch (Exception e2) {
					}
				}
			}else{//点JFileChooser关闭按扭时不做作务处理

			}
		}else if(arg0.getActionCommand().equals("save")){
			//出现保存对话框
			JFileChooser jfc=new JFileChooser();
			jfc.setDialogTitle("另存为...");	
			int value=jfc.showSaveDialog(null);
			jfc.setVisible(true);
			if(value==JFileChooser.APPROVE_OPTION){
				String filename=jfc.getSelectedFile().getAbsolutePath();

				FileWriter fw=null;
				BufferedWriter bw=null;
				try{
					fw=new FileWriter(filename);
					bw=new BufferedWriter(fw);	
					bw.write(jta.getText());
				}catch(Exception e){
					e.printStackTrace();
				}finally{
					try {
						bw.close();
						fw.close();
					} catch (Exception e2) {
					}
				}
			}else{

			}			
		}
	}
}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值