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

📄 mytexteditor.java

📁 利用javaApplet实现的记事本程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * 
*题目:记事本程序 
*Author: wjz 
* 2007-06-20 
***/ 

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import java.io.*; 
import java.util.*; 
import javax.swing.text.*; 

public class MyTextEditor implements ActionListener{ 
	boolean isChanged = true; 
	boolean isSaved;
	String filename = ""; 
	String strtext = ""; 
	Color textColor; //字体颜色

////////// 菜单栏各选项 //////////////// 
	JFrame frame1 = new JFrame("我的记事本"); 
	JTextArea text = new JTextArea(); //文本编辑区
	JLabel statusbar = new JLabel("状态栏"); 
	JMenuBar Mbar = new JMenuBar(); //菜单栏
	JFileChooser jFileChooser1 = new JFileChooser(new File(".")); //打开或保存的文件对话框

	JMenu jFile = new JMenu("文件");  //文件菜单
	JMenu jEdit = new JMenu("编辑");  //编辑菜单
	JMenu jFormat = new JMenu("格式"); //格式菜单
	JMenu jHelp = new JMenu("帮助"); 	//帮主菜单

	JMenuItem jnew,jopen,jsave,jsaveas,jquit;
	JMenuItem jcut,jcopy,jpaste,jfind,jreplace,jselectall,jdate;
	JMenuItem jchangeLine,jfont,jcolor;
	JMenuItem jabout;
	
	public MyTextEditor()	{ ///MyTextEditor构造函数 
		this.isChanged = false; 
		this.isSaved = false;
		final BorderLayout borderLayout1 = new BorderLayout(); 
		frame1.setSize(600,500); // 

		JPanel panel=new JPanel(); 
		panel.setLayout(borderLayout1);	//布局 
		panel.add(new JScrollPane(text));	//滚动条 
		panel.add(statusbar,borderLayout1.SOUTH); //状态栏--显示查找等操作的结果 

		frame1.getContentPane().add(panel); 
		frame1.setJMenuBar(Mbar); //将主菜单添加到窗体中 

		/*text.addChangeListener(new ChangeListener() { 
			public void stateChanged(ChangeEvent ec) { 
				isChanged = true;
			}
		});*/
		
/** jnew 新建文件菜单项 **/ 
	jnew = new JMenuItem("新建(N)"); 
	jnew.addActionListener(this); 
	jnew.setMnemonic('N');	//设置热键 
	jnew.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK,true)); //添加快捷键
	
/** jopen 打开文件菜单项**/ 
	jopen = new JMenuItem("打开(O)");
	jopen.addActionListener(this); 
	jopen.setMnemonic('O'); 
	jopen.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK,true)); 

/** jsave 保存文件菜单项**/ 
	jsave = new JMenuItem("保存(S)"); 
	jsave.addActionListener(this); 
	jsave.setMnemonic('S'); 
	jsave.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK,true)); 

/** jsave as 另存为菜单项**/ 
	jsaveas = new JMenuItem("另存为..."); 
	jsaveas.addActionListener(this); 

/** jquit 退出菜单项**/ 
	jquit = new JMenuItem("关闭(Q)"); 
	jquit.addActionListener(this); 
	jquit.setMnemonic('Q'); 
	jquit.setAccelerator(KeyStroke.getKeyStroke('Q',java.awt.Event.CTRL_MASK,true)); 
//------------------------------------ 
// jFile code of end 
//-------------------------------------- 

/*** jEdit code */ 
/** jcut 剪切菜单项 **/ 
	jcut = new JMenuItem("剪切(X)"); 
	jcut.addActionListener(this); 
	jcut.setMnemonic('X'); 
	jcut.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK,true)); 

/** jcopy 复制菜单项 **/ 
	jcopy = new JMenuItem("复制(C)"); 
	jcopy.addActionListener(this); 
	jcopy.setMnemonic('C'); 
	jcopy.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK,true)); 

/** jpaste 粘贴菜单项 **/ 
	jpaste = new JMenuItem("粘贴(V)"); 
	jpaste.addActionListener(this); 
	jpaste.setMnemonic('V'); 
	jpaste.setAccelerator(KeyStroke.getKeyStroke('V',java.awt.Event.CTRL_MASK,true)); 

/** jfind 查找菜单项 **/ 
	jfind = new JMenuItem("查找(F)"); 
	jfind.addActionListener(this); 
	jfind.setMnemonic('F'); 
	jfind.setAccelerator(KeyStroke.getKeyStroke('F',java.awt.Event.CTRL_MASK,true)); 

/** jreplace 替换菜单项 **/ 
	jreplace = new JMenuItem("替换(R)"); 
	jreplace.addActionListener(this); 
	jreplace.setMnemonic('R'); 
	jreplace.setAccelerator(KeyStroke.getKeyStroke('R',java.awt.Event.CTRL_MASK,true)); 

/**jselectall 全选菜单项 **/ 
	jselectall=new JMenuItem("全选(A)"); 
	jselectall.addActionListener(this); 
	jselectall.setMnemonic('A'); 
	jselectall.setAccelerator(KeyStroke.getKeyStroke('A',java.awt.Event.CTRL_MASK,true)); 

/**jdate 时间日期 **/ 
	jdate = new JMenuItem("时间/日期(D)"); 
	jdate.addActionListener(this); 
	jdate.setMnemonic('D'); 
	jdate.setAccelerator(KeyStroke.getKeyStroke('D',java.awt.Event.CTRL_MASK,true)); 
//------------------------------ 
// jEdit code of end 
//----------------------------- 

/** jchangeLine 自动换行菜单项 **/ 
	jchangeLine = new JMenuItem("自动换行"); 
	jchangeLine.addActionListener(this); 

/** jfont 字体设置菜单项 **/ 
	jfont = new JMenuItem("字体.."); 
	jfont.addActionListener(this); 
	
/** jfont 颜色设置菜单项 **/ 
	jcolor = new JMenuItem("文字颜色"); 
	jcolor.addActionListener(this); 
//-------------------------------------------------- 
// jFormat code of end 
//-------------------------------------------------- 

/** jabout 关于菜单项 **/ 
	jabout = new JMenuItem("关于(A)"); 
	jabout.addActionListener(this); 
	jabout.setMnemonic('A'); 
	jabout.setAccelerator(KeyStroke.getKeyStroke('W',java.awt.Event.CTRL_MASK,true)); 
//------------------------------------------------- 
// jHelp code of end 
//------------------------------------------------------ 

//将各选项添加到所在位置
	Mbar.add(jFile); 
	Mbar.add(jEdit); 
	Mbar.add(jFormat); 
	Mbar.add(jHelp); 

	jFile.add(jnew); 
	jFile.add(jopen); 
	jFile.addSeparator(); 
	jFile.add(jsave); 
	jFile.add(jsaveas); 
	jFile.addSeparator(); 
	jFile.add(jquit); 

	jEdit.add(jcut); 
	jEdit.add(jcopy); 
	jEdit.add(jpaste); 
	jEdit.addSeparator(); 
	jEdit.add(jfind); 
	jEdit.add(jreplace); 
	jEdit.addSeparator(); 
	jEdit.add(jselectall); 
	jEdit.add(jdate);

	jFormat.add(jchangeLine); 
	jFormat.addSeparator(); 
	jFormat.add(jfont); 
	jFormat.add(jcolor);

	jHelp.add(jabout); 

	frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame1.setVisible(true); 
	
	} 
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == jnew)	{ //新建
			if((this.isChanged)||(!isSaved)){ //文件改变或未保存时
				int n = JOptionPane.showConfirmDialog(null, 
						"想先保存文件吗?", "记事本", JOptionPane.YES_NO_OPTION); 
				if(n == JOptionPane.NO_OPTION){
					text.setText("");   //清空文本框
					frame1.setTitle("未命名"); //
					statusbar.setText("新建文本"); //设置状态栏 
					isSaved = false; //将新建文件状态设为未保存
				} 
				else if(n == JOptionPane.YES_OPTION) {
					save();
				}
			}
			else { 
				text.setText("");   //清空文本框
				frame1.setTitle("未命名"); //
				statusbar.setText("新建文本"); //设置状态栏 
				isSaved = false; //将新建文件状态设为未保存
			}
		}
		else if(e.getSource() == jopen)	{ //打开
			if((this.isChanged)||(!isSaved)){ //文件改变或未保存时
				int n = JOptionPane.showConfirmDialog(null, 
						"想先保存文件吗?", "记事本", JOptionPane.YES_NO_OPTION); 
				if(n == JOptionPane.NO_OPTION){
					open();
				} 
				else if(n == JOptionPane.YES_OPTION) {
					save();
				}
			}
			else { 
				open();
			}
		}
		else if(e.getSource() == jsave)	{ //保存
			save();
		}
		else if(e.getSource() == jsaveas)	{ //另存为
			if(this.jFileChooser1.APPROVE_OPTION == this.jFileChooser1.showSaveDialog(frame1)){ 
				this.filename = this.jFileChooser1.getSelectedFile().getPath(); 
				save(); 
			}
			else{ 
				System.out.println("!!!"); 
			} 
		}
		else if(e.getSource() == jquit)	{ //退出
			System.exit(0);
		}
		else if(e.getSource() == jcut)	{ //剪切
			try { 
				String str = this.text.getSelectedText(); 
				if(str.length() != 0){ 
					this.strtext = str; 
					this.text.replaceRange("",this.text.getSelectionStart(),this.text.getSelectionEnd()); 
					this.isChanged = true; 
				} 
			}
			catch(Exception ex){ 
				this.statusbar.setText("剪切出错:"+ex.getMessage()); 
			}
		}

⌨️ 快捷键说明

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