以前写的java简易记事本

虽然写的很差,不过当时还是写了很久的。eclipse要清理了,拿来备份下吧:

package com.test.notepad;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
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.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;

public class Main {

	JFrame frame = null;
	JMenuBar jmb = null;
	JMenu[] jm = null;
	JMenuItem[][] jmi = null;
	JScrollPane jsp = null;
	JViewport port = null;
	JTextArea content = null;
	JFileChooser fileChooser = null;

	File file = null;

	boolean isSaved;

	public Main() {

		isSaved = true;

		frame = new JFrame("记事本");
		frame.setLayout(new BorderLayout());

		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				confirmExit();
			}
		});
		
		
		jmb = new JMenuBar();

		jm = new JMenu[2];
		jm[0] = new JMenu("文件");
		jm[1] = new JMenu("帮助");
		jmb.add(jm[0]);
		jmb.add(jm[1]);
		jmi = new JMenuItem[2][];
		jmi[0] = new JMenuItem[5];
		jmi[1] = new JMenuItem[2];
		// 文件
		jmi[0][0] = new JMenuItem("新建");
		jmi[0][0].addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				jmi[0][3].setEnabled(true);
				content.setEnabled(true);
				isSaved = false;
			}
		});
		jmi[0][1] = new JMenuItem("打开");
		jmi[0][1].addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int ret = fileChooser.showOpenDialog(frame);
				if (ret != JFileChooser.APPROVE_OPTION) {
					return;
				}
				file = fileChooser.getSelectedFile();
				if (file == null) {
					return;
				}
				content.setEnabled(true);
				FileReader fr = null;
				try {
					fr = new FileReader(file);
					int i;
					StringBuffer sb = new StringBuffer("");
					while ((i = fr.read()) != -1) {
						sb.append((char) i);
					}
					content.setText(sb.toString());
					jmi[0][2].setEnabled(true);
					jmi[0][3].setEnabled(true);
					fr.close();
					isSaved = false;
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
//					e1.printStackTrace();
				} catch (IOException e2) {
					// TODO Auto-generated catch block
//					e2.printStackTrace();
				}
			}
		});
		jmi[0][2] = new JMenuItem("保存");
		jmi[0][2].setEnabled(false);
		jmi[0][2].addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				save();
			}
		});

		jmi[0][3] = new JMenuItem("另存为");
		jmi[0][3].setEnabled(false);
		jmi[0][3].addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				saveAs();
			}
		});
		jmi[0][4] = new JMenuItem("退出");
		jmi[0][4].addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				confirmExit();
			}
		});

		jm[0].add(jmi[0][0]);
		jm[0].add(jmi[0][1]);
		jm[0].add(jmi[0][2]);
		jm[0].add(jmi[0][3]);
		jm[0].add(jmi[0][4]);
		// 帮助
		jmi[1][0] = new JMenuItem("关于");

		jm[1].add(jmi[1][0]);

		jsp = new JScrollPane();
		port = jsp.getViewport();
		content = new JTextArea();
		content.setEnabled(false);
		content.addKeyListener(new KeyAdapter() {
			public void keyReleased(KeyEvent e) {
				checkSave();
			}
		});
		port.add(content);

		fileChooser = new JFileChooser("e:/");

		frame.add(jmb, BorderLayout.NORTH);
		frame.add(jsp, BorderLayout.CENTER);

		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(400, 100, 600, 500);
		frame.setVisible(true);
	}

	protected void confirmExit() {
		if (isSaved == false) {
			if (JOptionPane.showConfirmDialog(null, "确定不保存退出?", "提示",
					JOptionPane.YES_NO_OPTION,
					JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
			} else{
				if(file == null){
					saveAs();
				}else{
					save();
				}
			}
		}
		System.exit(0);
		
	}

	protected void save() {
		try {
			FileWriter fw = new FileWriter(file);
			String str = content.getText();
			System.out.println(str);
			fw.write(str);
			fw.close();
			isSaved = true;
			checkSave();
		} catch (IOException e1) {
//			e1.printStackTrace();
		}
	}

	protected void saveAs() {
		int ret = fileChooser.showSaveDialog(frame);
		if (ret != JFileChooser.APPROVE_OPTION) {
			return;
		}
		file = fileChooser.getSelectedFile();
		try {
			FileWriter fw = new FileWriter(file);
			fw.write(content.getText());
			fw.close();
			isSaved = true;
			checkSave();
		} catch (IOException e1) {
//			e1.printStackTrace();
		}
	}

	protected void checkSave() {
//		System.out.println("in func checkSave():" + file);
		String title = null;
		if(file == null){
			title = "untitled";
		}else{
			title = file.getName();
		}
		frame.setTitle(title);
		if(isSaved != true){
			title += " *";
		} else{
			jmi[0][2].setEnabled(true);
		}
	}

	public static void main(String[] args) {
		new Main();
	}
}
当时也没有注释,不过应该可以看懂的


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值