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

📄 menumu_3.java

📁 //构造具有指定的标签的菜单 files = new Menu("文件(F)") compile = new Menu("编辑(E)") see = new Menu("查看(V
💻 JAVA
字号:
/*  作者:叶振飞  开发日期:2006-3-3   email:yezhenfei@chinaren.com   */
package Menunu_3;
// 导入所要用到的包
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.DateFormat;
import java.util.*;
import javax.swing.*;


public class Menumu_3 extends Component implements ActionListener {
	private static final long serialVersionUID = 1L;
  
	//以下是对对象的声明
	Frame text;
	MenuBar mb;
	Menu files, format, see;
	Menu compile;
	Menu help, font;
	MenuItem save, other, page, mim, open, news, quit;
	MenuItem remove, cap, copy, plaster, dele, lookup, next, replace, gt,
			elect, date;
	MenuItem nline, estate, assist, about;
	MenuItem song, font1, font2, color, backColor;
	TextArea te;
	FileDialog set, save1, qu;
	JInternalFrame jin;
	
	// Menumu_2类下面的一个方法
	public void go() {
		
		//对所有对象的实例化
		text = new Frame("无标题-记事本"); //创建一个Frame容器
		
		mb = new MenuBar();    //创建一个菜单栏
		
		
		//构造具有指定的标签的菜单
		files = new Menu("文件(F)"); 
		compile = new Menu("编辑(E)");
		see = new Menu("查看(V)");  
		format = new Menu("格式(O)"); 
		   font = new Menu("字体和颜色(F)...");  //在格式菜单下再添加一个字体及颜色的菜单 
		help = new Menu("帮助(H)");
		
		
        //构造具有指定的标签的菜单项
		news = new MenuItem("新建(N)" + "               " + "Ctrl+N");
		open = new MenuItem("打开(O)..." + "            " + "Ctrl+O");
		save = new MenuItem("保存(S)" + "               " + "Ctrl+S");
		other = new MenuItem("另存为(A)...");
		page = new MenuItem("页面设置(U)...");
		mim = new MenuItem("打印(P)..." + "            " + "Ctrl+P");
		quit = new MenuItem("退出(X)");
		
		
		remove = new MenuItem("撤销(U)" + "               " + "Ctrl+Z");
		cap = new MenuItem("剪贴(T)" + "               " + "Ctrl+X");
		copy = new MenuItem("复制(C)" + "               " + "Ctrl+C");
		plaster = new MenuItem("粘贴(P)" + "               " + "Ctrl+V");
		dele = new MenuItem("删除(L)" + "               " + "Del");
		lookup = new MenuItem("查找(F)..." + "            " + "Ctrl+F");
		next = new MenuItem("查找下一个(N)" + "   " + "F3");
		replace = new MenuItem("替换(N)..." + "            " + "Ctrl+H");
		gt = new MenuItem("转到(G)..." + "            " + "Ctrl+G");
		elect = new MenuItem("全选(A)" + "               " + "Ctrl+A");
		date = new MenuItem("时间/日期(D)" + "      " + "F5");

		set = new FileDialog(text, "打开", 0);
		save1 = new FileDialog(text, "另存为", 1);
		
		nline = new MenuItem("自动换行(W)");
		
		song = new MenuItem("宋体");
		font1 = new MenuItem("英文字体");
		font2 = new MenuItem("黑体");
		color = new MenuItem("字体颜色");
		backColor = new MenuItem("文本颜色");
		
		open.addActionListener(this);
		other.addActionListener(this);
		quit.addActionListener(this);
		news.addActionListener(this);
		save.addActionListener(this);

		files.add(news);
		files.add(open);
		files.add(save);
		files.add(other);
		files.addSeparator();//添加分割线
		files.add(page);
		files.add(mim);
		files.addSeparator();
		files.add(quit);

		
		compile.add(remove);//编辑子菜单
		compile.add(cap);
		compile.add(copy);
		compile.add(plaster);
		compile.add(dele);
		compile.add(lookup);
		compile.add(next);
		compile.add(replace);
		compile.add(gt);
		compile.add(elect);
		compile.add(date);
		compile.insertSeparator(1);
		compile.insertSeparator(6);
		compile.insertSeparator(11);
		date.addActionListener(this);
		dele.addActionListener(this);

		
		
		nline.addActionListener(this);
		
		
		font.add(song);
		font.insertSeparator(1);
		font.add(font1);
		font.addSeparator();
		font.add(font2);
		font.addSeparator();
		font.add(color);
		font.addSeparator();
		font.add(backColor);
		song.addActionListener(this);
		font1.addActionListener(this);
		font2.addActionListener(this);
		color.addActionListener(this);
		backColor.addActionListener(this);
		format.add(nline);
		format.add(font);
		font.addActionListener(this);

		
		estate = new MenuItem("状态(S)");
		see.add(estate);

		
		assist = new MenuItem("帮助主题(H)");
		about = new MenuItem("关于记事本(A)");
		about.addActionListener(this);
		help.add(assist);
		help.addSeparator();
		help.add(about);

		te = new TextArea("", 10000, 70, 0);

		text.setMenuBar(mb);
		text.add(te, "Center");

		mb.add(files);
		mb.add(compile);
		mb.add(format);
		mb.add(see);
		mb.add(help);
		text.setLocation(400, 400);
		text.setSize(640, 480);
		text.setVisible(true);
		text.addWindowListener(new WindowAdapter() {
			
			public void windowClosing(WindowEvent e) {
				String str = set.getDirectory() + set.getFile();
				int show;
				
				if(text.getTitle()=="无标题-记事本"){
				show = JOptionPane.showConfirmDialog(text, "文件 " + text.getTitle()
						+ "文字已经更改。\n想保荐文档吗", "记事本", JOptionPane.YES_NO_CANCEL_OPTION,
						JOptionPane.INFORMATION_MESSAGE);
				}else{
					show = JOptionPane.showConfirmDialog(text, "文件" + str
							+ "文字已经更改。\n想保荐文档吗", "记事本", JOptionPane.YES_NO_CANCEL_OPTION,
							JOptionPane.INFORMATION_MESSAGE);
				}
				if (show == 0) {
					int n;
					save1.setVisible(true);
					try {
						StringReader sr = new StringReader(te.getText());
						BufferedWriter bw = new BufferedWriter(new FileWriter(
								save1.getDirectory() + save1.getFile()));
						while ((n = sr.read()) != -1) {
							char c = (char) n;
							if (c == '\n') {
								bw.newLine();
							} else {
								bw.write(c);
							}
						}
						sr.close();
						bw.close();
					} catch (IOException e1) {
						// e1.printStackTrace();
						System.out.println("");
					}
				}
				if (show == 1)
					System.exit(0);
			
				
			}
		});

	}

	public static void main(String args[]) {
		 new Menumu_3().go();
		
	}
	public void actionPerformed(ActionEvent e) {

		if (e.getSource().equals(open)) {
			set.setVisible(true);
			text.setTitle(set.getFile() + "-记事本");
			try {
				BufferedReader br = new BufferedReader(new FileReader(set
						.getDirectory()
						+ set.getFile()));
				if (te.getText().equals("")) {
					while (br.ready())
						te.append(br.readLine() + "\n");
				} else {
					te.setText("");
					while (br.ready())
						te.append(br.readLine() + "\n");
				}

				br.close();
			} catch (FileNotFoundException e2) {
				System.out.println("");
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}

		if (e.getSource().equals(other)) {
			int n;
			save1.setVisible(true);
			try {
				StringReader sr = new StringReader(te.getText());
				BufferedWriter bw = new BufferedWriter(new FileWriter(save1
						.getDirectory()
						+ save1.getFile()));
				while ((n = sr.read()) != -1) {
					char c = (char) n;
					if (c == '\n') {
						bw.newLine();
					} else {
						bw.write(c);
					}
				}
				sr.close();
				bw.close();
			} catch (IOException e1) {
				// e1.printStackTrace();
				System.out.println("");
			}

		}

		if (e.getSource().equals(save)) {

			save1.setMode(1);
			int a;
			try {
				if (set.getFile() == null) {
					save1.setVisible(true);
					StringReader sr = new StringReader(te.getText());
					BufferedWriter bw = new BufferedWriter(new FileWriter(save1
							.getDirectory()
							+ save1.getFile()));
					while ((a = sr.read()) != -1) {
						char c = (char) a;
						if (c == '\n') {
							bw.newLine();
						} else {
							bw.write(c);
						}
					}
					sr.close();
					bw.close();
				} else {
					StringReader sr = new StringReader(te.getText());
					BufferedWriter bw = new BufferedWriter(new FileWriter(set
							.getDirectory()
							+ set.getFile()));
					while ((a = sr.read()) != -1) {
						char c = (char) a;
						if (c == '\n') {
							bw.newLine();
						} else {
							bw.write(c);
						}
					}
					sr.close();
					bw.close();
				}
			} catch (IOException e1) {
				// e1.printStackTrace();
				System.out.println("");
			}
		}

		if (e.getSource().equals(news)) {
			set.setDirectory("");
			set.setFile("");
			text.setTitle("无标题-记事本");
			te.setFont(new Font("宋体",Font.PLAIN,12));
			te.setForeground(new Color(0,0,0));
			te.setBackground(new Color(255,255,255));
			te.setText("");
		}

		if (e.getSource().equals(nline)){
			//te.setText("");
		}
		if (e.getSource().equals(color)) {

			Color col = JColorChooser.showDialog(te, "字体颜色", Color.BLACK);
			te.setForeground(col);
		}
		if (e.getSource().equals(song)) {
			Font f = new Font("宋体", Font.ITALIC + Font.BOLD, 18);
			te.setFont(f);
		}
		if (e.getSource().equals(font1)) {
			Font f = new Font("Dotum", Font.ITALIC + Font.BOLD, 15);
			te.setFont(f);
		}
		if (e.getSource().equals(font2)) {
			Font f = new Font("黑体", Font.ITALIC, 15);
			te.setFont(f);
		}
		if (e.getSource().equals(backColor)) {

			Color col = JColorChooser.showDialog(te, "字体颜色", Color.BLACK);
			te.setBackground(col);
		}

		if (e.getSource().equals(date)) {
			Date today = new Date();
			// DateFormat f1=DateFormat.getInstance();
			DateFormat f1 = DateFormat.getDateTimeInstance(DateFormat.SHORT,
					DateFormat.SHORT);
			String s1 = f1.format(today);
			te.append(f1.format(today));
			System.out.println(s1);
		}
		if (e.getSource().equals(quit)) {
			String str = set.getDirectory() + set.getFile();
			int show;
			if(text.getTitle()=="无标题-记事本"){
				show = JOptionPane.showConfirmDialog(text, "文件 " + text.getTitle()
						+ "文字已经更改。\n想保荐文档吗", "记事本", JOptionPane.YES_NO_CANCEL_OPTION,
						JOptionPane.INFORMATION_MESSAGE);
				}else{
					show = JOptionPane.showConfirmDialog(text, "文件" + str
							+ "文字已经更改。\n想保荐文档吗", "记事本", JOptionPane.YES_NO_CANCEL_OPTION,
							JOptionPane.INFORMATION_MESSAGE);
				}
			if (show == 0) {
				int n;
				save1.setVisible(true);
				try {
					StringReader sr = new StringReader(te.getText());
					BufferedWriter bw = new BufferedWriter(new FileWriter(save1
							.getDirectory()
							+ save1.getFile()));
					while ((n = sr.read()) != -1) {
						char c = (char) n;
						if (c == '\n') {
							bw.newLine();
						} else {
							bw.write(c);
						}
					}
					sr.close();
					bw.close();
				} catch (IOException e1) {
					//e1.printStackTrace();
					System.out.println("");
				}
			}
			if (show == 1)
				System.exit(0);
		}
		if (e.getSource().equals(about)) {
			JOptionPane
					.showConfirmDialog(
							text,
							"版本3.0(内部版本号 2007.03.04:\nEclipse-Java-Text)\n\n\n版权所有:IBM培训中心。",
							"关于记事本", JOptionPane.DEFAULT_OPTION,
							JOptionPane.INFORMATION_MESSAGE);
		}

	}

}

⌨️ 快捷键说明

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