📄 menumu_3.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 + -