用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java实现的一个简单的记事本小程序

2016-05-21 作者: 夜丶微凉举报

[java]代码库


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JCheckBoxMenuItem;
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.JTextPane;
import javax.swing.KeyStroke;
import javax.swing.WindowConstants;

public class NotePadTest extends JFrame {

	private static final long serialVersionUID = 7733222986650734523L;
	JMenuBar jmb = new JMenuBar();
	// 创建子菜单
	JMenu jm1 = new JMenu("文件");
	JMenu jm2 = new JMenu("编辑");
	JMenu jm3 = new JMenu("格式");
	JMenu jm5 = new JMenu("帮助");
	// 创建菜单项(文件)
	JMenuItem jme1 = new JMenuItem("新建");
	JMenuItem jme2 = new JMenuItem("打开");
	JMenuItem jme3 = new JMenuItem("保存");
	JMenuItem jme4 = new JMenuItem("另存为...");
	JMenuItem jme5 = new JMenuItem("退出");
	// 创建菜单项(编辑)
	JMenuItem jme6 = new JMenuItem("全选");
	JMenuItem jme7 = new JMenuItem("剪切");
	JMenuItem jme8 = new JMenuItem("复制");
	JMenuItem jme9 = new JMenuItem("粘贴");
	JMenuItem jme10 = new JMenuItem("删除");
	// 创建菜单项(格式)
	JCheckBoxMenuItem jme11 = new JCheckBoxMenuItem("自动换行", false);
	// 创建菜单项(帮助)
	JMenuItem jme14 = new JMenuItem("查看帮助");
	JMenuItem jme15 = new JMenuItem("关于记事本");
	// 实例化文本域
	JTextArea jtext = new JTextArea();
	JTextPane pane = new JTextPane();// 文本窗格
	JScrollPane jscroll = new JScrollPane(jtext);
	JTextPane jtshow = new JTextPane();

	public NotePadTest() {
		setTitle("记事本");
		setSize(500, 460);
		setLocationRelativeTo(null);
		pane.setLayout(new BorderLayout());
		// 设置快捷键
		jme1.setMnemonic('N');
		jme1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK));
		jme2.setMnemonic('O');
		jme2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_MASK));
		jme3.setMnemonic('S');
		jme3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_MASK));
		jme6.setMnemonic('A');
		jme6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK));
		jme7.setMnemonic('X');
		jme7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK));
		jme8.setMnemonic('C');
		jme8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK));
		jme9.setMnemonic('V');
		jme9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_MASK));
		jme10.setMnemonic('L');
		jme10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, KeyEvent.CTRL_MASK));
		// 添加菜单项到子菜单(文件)
		jm1.add(jme1);
		jm1.addSeparator();
		jm1.add(jme2);
		jm1.addSeparator();
		jm1.add(jme3);
		jm1.addSeparator();
		jm1.add(jme4);
		jm1.addSeparator();
		jm1.add(jme5);
		jmb.add(jm1);
		// 添加菜单项到子菜单(编辑)
		jm2.add(jme6);
		jm2.addSeparator();
		jm2.add(jme7);
		jm2.addSeparator();
		jm2.add(jme8);
		jm2.addSeparator();
		jm2.add(jme9);
		jm2.addSeparator();
		jm2.add(jme10);
		jmb.add(jm2);
		// 添加菜单项到子菜单(格式)
		// 设置快捷键
		jme11.setMnemonic('w');
		jme11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_MASK));
		jm3.add(jme11);
		jmb.add(jm3);
		// 添加菜单项到子菜单(帮助)
		jm5.add(jme14);
		jm5.addSeparator();
		jm5.add(jme15);
		jmb.add(jm5);
		// 将菜单栏添加到窗体顶部
		setJMenuBar(jmb);
		// container.add(jmb,BorderLayout.NORTH);
		// 添加文本域
		pane.add(jscroll, BorderLayout.CENTER);
		add(pane);
		// **************************添加事件监听器(全选部分)*******************************
		jme6.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				jtext.selectAll();// 全选
			}
		});
		// **************************添加事件监听器(剪切部分)*******************************
		jme7.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				jtext.cut();// 剪切
			}
		});
		// **************************添加事件监听器(复制部分)*******************************
		jme8.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				jtext.copy();// 复制
			}
		});
		// **************************添加事件监听器(粘贴部分)*******************************
		jme9.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				jtext.paste();// 粘贴
			}
		});
		// **************************添加事件监听器(删除部分)*******************************
		jme10.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				jtext.replaceSelection(null);// 删除
			}
		});
		// **************************添加事件监听器(新建部分)********************************
		jme1.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (jtext.getText().equals("")) {
					jtext.setText("");
				} else {
					int result = JOptionPane.showConfirmDialog(NotePadTest.this, "是否将更改保存到无标题?", "记事本",
							JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
					if (result == 0) {
						save();
					}
				}
			}
		});
		// **************************添加事件监听器(打开部分)********************************
		jme2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				JFileChooser choose = new JFileChooser();
				choose.setDialogTitle("打开");
				File file;
				int result = choose.showOpenDialog(NotePadTest.this);
				if (result == JFileChooser.APPROVE_OPTION) {
					try { // 获取当前选择的文件
							// 创建文件输出流
						file = choose.getSelectedFile();
						BufferedReader br = new BufferedReader(new FileReader(file));
						String str = null;
						while ((str = br.readLine()) != null) {
							jtext.append(str + "\r\n");
						}
						// 设置记事本标题
						setTitle(file.getName() + "  记事本");
						br.close();
					} catch (Exception ee) {
						ee.printStackTrace();
					}
				}
			}
		});
		// **************************添加事件监听器(保存部分)********************************
		jme3.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (jtext.getText() != null && !jtext.getText().equals("")) {
					save();
				}
			}
		});
		// **************************添加事件监听器(另存为部分)********************************
		jme4.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (jtext.getText() != null && !jtext.getText().equals("")) {
					save();
				}
			}
		});
		// **************************添加事件监听器(退出部分)********************************
		jme5.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (jtext.getText().equals("")) {
					NotePadTest.this.dispose();
				} else {
					int result = JOptionPane.showConfirmDialog(NotePadTest.this, "是否将更改保存到无标题?", "记事本",
							JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
					if (result == 0) {
						if (jtext.getText() != null && !jtext.getText().equals("")) {
							save();
						}
					} else if (result == 1) {
						NotePadTest.this.dispose();
					}
				}
			}
		});
		// **************************添加事件监听器(自动换行部分)********************************
		jme11.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (jme11.isSelected()) {
					jtext.setLineWrap(true);
				} else {
					jtext.setLineWrap(false);
				}
			}
		});
		// **************************添加事件监听器(查看帮助部分)***********************************
		jme14.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				JOptionPane.showMessageDialog(NotePadTest.this, "输入文字即可!");
			}
		});
		// **************************添加事件监听器(关于记事本部分)***********************************
		jme15.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				JOptionPane.showMessageDialog(NotePadTest.this, "版本:Windows旗舰版");
			}
		});

		// 设置窗体关闭
		if (jtext.getText().equals("")) {
			setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

		} else if (jtext.getText() != null) {
			int result = JOptionPane.showConfirmDialog(NotePadTest.this, "是否将更改保存到无标题?", "记事本",
					JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
			if (result == 0) {
			} else if (result == 1) {
				setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
			}
		}
		// 设置窗体是否可见
		setVisible(true);
	}

	public void save() {
		JFileChooser choose = new JFileChooser();
		int result = choose.showSaveDialog(NotePadTest.this);// NotePad.this父容器
		if (result == JFileChooser.APPROVE_OPTION) {
			File file;
			try {
				file = choose.getSelectedFile();
				BufferedWriter bw = new BufferedWriter(new FileWriter(file));
				bw.write(jtext.getText());
				bw.close();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}

	}

	public static void main(String[] args) {
		new NotePadTest();
	}
}


网友评论    (发表评论)

共5 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...