⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 note.java

📁 自己写的java 的记事本,内有源码.和jar 文件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package note;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Calendar;
import java.util.Date;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
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.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.UndoManager;

public class Note extends JFrame {
	/**
	 * 
	 */

	private static final long serialVersionUID = 5207270211273679657L;

	String filePath = "";
	
	UndoManager undoManager = new UndoManager();

	boolean isChange = false;

	boolean wasChange = false;

	JMenuBar menuBar = new JMenuBar();

	//分别声明用到的各种组件,包括 菜单,菜单项等
	
	JMenu menuFile = new JMenu("文件");//菜单栏

	JMenuItem menuFileOpen = new JMenuItem("打开..");//打开选项

	JMenuItem menuFileSave = new JMenuItem("保存..");//保存选项

	JMenuItem menuFileExit = new JMenuItem("退出");

	JMenu menuEdit = new JMenu("编辑");

	JMenuItem menuFileReturn = new JMenuItem("撤销(ctrl + z)");

	JMenuItem menuFileRevert = new JMenuItem("还原(ctrl + y)");

	JMenuItem menuFileCut = new JMenuItem("剪切");

	JMenuItem menuFileCopy = new JMenuItem("复制");

	JMenuItem menuFilePaste = new JMenuItem("粘贴");

	JMenuItem menuFileFind = new JMenuItem("查找");

	JMenuItem menuFileReplace = new JMenuItem("替换");
	
	JMenuItem menuFileTime = new JMenuItem("时间");

	JMenu menuFormat = new JMenu("格式");

	JMenuItem ditFont = new JMenuItem("字体");

	JMenuItem format_color = new JMenuItem("颜色");

	JMenu menuHelp = new JMenu("帮助");

	JMenuItem About = new JMenuItem("关于");

	//JMenuItem menuFileNext = new JMenuItem("查找下一个(N)");

	JCheckBoxMenuItem autoLine = new JCheckBoxMenuItem("自动换行");

	static JTextArea fileArea = new JTextArea();

	JButton but_return = new JButton(new ImageIcon(
			"image/houtui(keyong).jpg"));

	JButton but_revert = new JButton(new ImageIcon(
			"image/qianjin(keyong).jpg"));

	JButton but_new = new JButton(new ImageIcon("image/new.gif"));

	JButton but_open = new JButton(new ImageIcon("image/open.gif"));

	JButton but_save = new JButton(new ImageIcon("image/save.gif"));

	JButton but_cut = new JButton(new ImageIcon("image/cut.gif"));

	JButton but_copy = new JButton(new ImageIcon("image/copy.gif"));

	JButton but_paste = new JButton(new ImageIcon("image/paste.gif"));
	JLabel jlb_line = new JLabel();
	
	int line;
	int col;
	Dimension screenNote = getToolkit().getScreenSize();

	public Note() {
		
		this.setTitle("记事本");
		

		//窗口关闭事件..
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				exit();
			}
		});// 打开 
		menuFileOpen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileOpen_actionPerformed(e);
			}
		});
		//保存

		menuFileSave.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileSave_actionPerformed(e);
			}
		});
		// 退出
		menuFileExit.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileExit_actionPerformed(e);
			}
		});

		//撤销
		menuFileReturn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileReturn_actionPerformed(e);
			}
		});

		//还原
		menuFileRevert.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成方法存根
				fileRevert_actionPerfomend(e);
			}
		});

		//剪切
		menuFileCut.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileCut_actionPerformed(e);
			}
		});
		//复制
		menuFileCopy.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileCopy_actionPerformed(e);
			}
		});
		//粘贴
		menuFilePaste.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				filePaste_actionPerformed(e);
			}
		});
		// 查找功能 
		menuFileFind.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileFind_actionPerformed(e);
			}
		});

		/*menuFileNext.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent evt) {

			}
		});*/

		// 替换
		menuFileReplace.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileReplace_actionPermed(e);
			}
		});
		//时间
		menuFileTime.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileTime_ActionPermed(e);
			}
		});
		
		//字体设置
		ditFont.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				font_actionPerformed(e);
			}
		});
		//颜色设置	
		format_color.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileColor_actionPerformed(e);
			}
		});
		//关于
		About.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				About_actionPerformed(e);
			}
		});
		fileArea.getDocument().addDocumentListener(new DocumentListener() {
			public void insertUpdate(DocumentEvent e) {
				wasChange = isChange;
				isChange = true;
			}

			public void removeUpdate(DocumentEvent e) {
				wasChange = isChange;
				isChange = true;
			}

			public void changedUpdate(DocumentEvent e) {
				wasChange = isChange;
				isChange = true;
			}
		});
		setSize(500, 450);
		menuBar.add(menuFile);
		menuFile.setMnemonic('F');
		menuBar.add(menuEdit);
		menuEdit.setMnemonic('E');
		menuBar.add(menuFormat);
		menuFormat.setMnemonic('G');
		menuBar.add(menuHelp);
		menuHelp.setMnemonic('H');
		menuFile.add(menuFileOpen);
		menuFileOpen.setMnemonic('O');// 访问健;
		menuFileOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
				InputEvent.CTRL_MASK));// 快捷健;
		menuFile.add(menuFileSave);
		menuFileSave.setMnemonic('S');
		menuFileSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
				InputEvent.CTRL_MASK));
		menuFile.addSeparator();
		menuFile.add(menuFileExit);
		menuFileExit.setMnemonic('E');
		menuEdit.add(menuFileReturn);
		menuFileReturn.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
				InputEvent.CTRL_MASK));
		menuFileReturn.setEnabled(false);
		menuEdit.add(menuFileRevert);
		menuFileRevert.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,
				InputEvent.CTRL_MASK));
		menuFileRevert.setEnabled(false);
		menuEdit.add(menuFileCut);
		menuFileCut.setMnemonic('C');
		menuFileCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
				InputEvent.CTRL_MASK));
		menuEdit.add(menuFilePaste);
		menuFilePaste.setMnemonic('P');
		menuFilePaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
				InputEvent.CTRL_MASK));
		menuEdit.add(menuFileCopy);
		menuFileCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
				InputEvent.CTRL_MASK));
		menuEdit.add(menuFileFind);
		menuFileFind.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,
				InputEvent.CTRL_MASK));
		//menuEdit.add(menuFileNext);
	/*	menuFileNext.setMnemonic('N');
		menuFileNext.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0));
		menuEdit.add(menuFileReplace);
		menuFileReplace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
				InputEvent.CTRL_MASK));*/

		menuFormat.add(autoLine);

		autoLine.setMnemonic('W');
		autoLine.setText("自动换行(W)");
		autoLine.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
				InputEvent.CTRL_MASK));
		autoLine.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				autoLine_WrapActionPerformed(e);
			}
		});
		menuEdit.add(menuFileTime);
		menuFileTime.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
	

		menuFormat.add(ditFont);
		ditFont.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,
				InputEvent.CTRL_MASK));
		menuFormat.add(format_color);
		format_color.setMnemonic('N');
		format_color.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
				InputEvent.CTRL_MASK));
		menuHelp.add(About);
		About.setMnemonic('H');
		About.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,
				InputEvent.CTRL_MASK));
		this.getContentPane().add(new JScrollPane(fileArea));
		setJMenuBar(menuBar);

		JToolBar jtb = new JToolBar();

		but_return.setToolTipText("撤销");
		but_return.setEnabled(false);
		but_revert.setToolTipText("恢复");
		but_revert.setEnabled(false);
		but_new.setToolTipText("新建文件");
		but_open.setToolTipText("打开文件");
		but_save.setToolTipText("保存文件");
		but_cut.setToolTipText("剪切");
		but_copy.setToolTipText("复制");
		but_paste.setToolTipText("粘贴");
		
		

		fileArea.getDocument().addUndoableEditListener(
				new UndoableEditListener() {
					public void undoableEditHappened(UndoableEditEvent e) {
						undoManager.addEdit(e.getEdit());
						Update();
						line = fileArea.getLineCount(); 
						col = fileArea.getText().length();
						jlb_line.setText("   统计:  共 " + line + "行; " + col+"字");
						
						
					}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -