很久之前的,忘记记录了,现在贴出来。。
package Swing记事本;
import java.awt.Container;
import java.awt.FileDialog;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Scrollbar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
public class NoteBook extends JFrame implements ActionListener {
JMenuBar menubar;
JMenu menu1, menu2, menu3;
JMenuItem item1, item2, item3, item4, item5, item6, item7, item8, item9, item10;
private FileDialog openFileDialog;
private FileDialog saveFileDialog;
final JTextArea textarea;
JPanel panel;
String fileName;
String title;
int type;
public static void main(String[] args) {
new NoteBook().init();
}
public NoteBook() {
super("555");
menubar = new JMenuBar();
menu1 = new JMenu("文件");
item1 = new JMenuItem("新建");
item2 = new JMenuItem("打开");
item3 = new JMenuItem("保存");
item4 = new JMenuItem("另存");
item5 = new JMenuItem("退出");
menu2 = new JMenu("编辑");
item6 = new JMenuItem("全选");
item7 = new JMenuItem("复制");
item8 = new JMenuItem("剪切");
item9 = new JMenuItem("粘贴");
menu3 = new JMenu("关于");
item10 = new JMenuItem("帮助");
openFileDialog = new FileDialog(this, "Open File", FileDialog.LOAD);
saveFileDialog = new FileDialog(this, "Save File", FileDialog.SAVE);
fileName = "NoName.tet";
textarea = new JTextArea();
title = "ERROR MESSAGE";
type = JOptionPane.ERROR_MESSAGE;
panel = new JPanel();
}
public void init() {
setBounds(200, 300, 500, 400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.setLayout(new GridLayout(1, 1));
panel.add(new JScrollPane(textarea));
textarea.setFont(new Font("黑体", Font.BOLD, 15));
getContentPane().add(panel);
setJMenuBar(menubar);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menu1.add(item1);
menu1.add(item2);
menu1.addSeparator();
menu1.add(item3);
menu1.add(item4);
menu1.addSeparator();
menu1.add(item5);
menu2.add(item6);
menu2.addSeparator();
menu2.add(item7);
menu2.add(item8);
menu2.add(item9);
menu3.add(item10);
item1.addActionListener(this);
item1.setMnemonic('N');
item1.setAccelerator(KeyStroke.getKeyStroke('N', java.awt.Event.CTRL_MASK, true));
item2.addActionListener(this);
item2.setMnemonic('O');
item2.setAccelerator(KeyStroke.getKeyStroke('O', java.awt.Event.CTRL_MASK, true));
item3.addActionListener(this);
item3.setMnemonic('S');
item3.setAccelerator(KeyStroke.getKeyStroke('S', java.awt.Event.CTRL_MASK, true));
item4.addActionListener(this);
item4.setMnemonic('T');
item4.setAccelerator(KeyStroke.getKeyStroke('T', java.awt.Event.CTRL_MASK, true));
item5.addActionListener(this);
item5.setMnemonic('Q');
item5.setAccelerator(KeyStroke.getKeyStroke('Q', java.awt.Event.CTRL_MASK, true));
item6.addActionListener(this);
item6.setMnemonic('A');
item6.setAccelerator(KeyStroke.getKeyStroke('A', java.awt.Event.CTRL_MASK, true));
item7.addActionListener(this);
item7.setMnemonic('C');
item7.setAccelerator(KeyStroke.getKeyStroke('C', java.awt.Event.CTRL_MASK, true));
item8.addActionListener(this);
item8.setMnemonic('X');
item8.setAccelerator(KeyStroke.getKeyStroke('X', java.awt.Event.CTRL_MASK, true));
item9.addActionListener(this);
item9.setMnemonic('P');
item9.setAccelerator(KeyStroke.getKeyStroke('P', java.awt.Event.CTRL_MASK, true));
item10.addActionListener(this);
item10.setMnemonic('H');
item10.setAccelerator(KeyStroke.getKeyStroke('H', java.awt.Event.CTRL_MASK, true));
}
@Override
public void actionPerformed(ActionEvent e) {
Object evenSource = e.getSource();
if (evenSource.equals(item1)) {
textarea.setText("");
} else if (evenSource.equals(item2)) {
readFile();
} else if (evenSource.equals(item3)) {
fileName = "NoName.tet";
writeFile(fileName);
} else if (evenSource.equals(item4)) {
fileName = null;
writeFile(fileName);
} else if (evenSource.equals(item6)) {
textarea.selectAll();
} else if (evenSource.equals(item7)) {
textarea.copy();
} else if (evenSource.equals(item8)) {
textarea.cut();
} else if (evenSource.equals(item9)) {
textarea.paste();
} else if (evenSource.equals(item10)) {
JOptionPane.showMessageDialog(this, "666");
} else if (evenSource.equals(item5)) {
dispose();
System.exit(0);
}
}
private void writeFile(String fileName) {
File filesa;
String messagef = "文件未找到";
FileOutputStream outputfile = null;
if (fileName == null) {
JFileChooser savefile = new JFileChooser();
savefile.setApproveButtonText("保存");
savefile.setDialogTitle("保存文件");
savefile.showSaveDialog(this);
filesa = savefile.getSelectedFile();
if (filesa == null)
return;
} else {
filesa = new File(fileName);
}
try {
outputfile = new FileOutputStream(filesa);
} catch (FileNotFoundException ee) {
JOptionPane.showMessageDialog(this, messagef, title, type);
}
String filecontent = textarea.getText();
String wrmessage = "下文件错误!";
try {
outputfile.write(filecontent.getBytes());
} catch (IOException ee) {
JOptionPane.showMessageDialog(this, wrmessage, title, type);
}
String cmessage = "关闭流发生错误!";
try {
outputfile.close();
} catch (IOException ee) {
JOptionPane.showMessageDialog(this, cmessage, title, type);
}
}
private void readFile() {
JFileChooser openfile = new JFileChooser();
openfile.setDialogTitle("打开文件");
openfile.setApproveButtonText("打开");
openfile.showOpenDialog(this);
File file = openfile.getSelectedFile();
if (file != null) {
FileInputStream inputfile = null;
String message = "文件不能找到!";
try {
inputfile = new FileInputStream(file);
} catch (FileNotFoundException ee) {
JOptionPane.showMessageDialog(this, message, title, type);
}
int readbytes;
String message1 = "读文件发生错误!";
try {
while ((readbytes = inputfile.read()) != -1) {
textarea.append(String.valueOf((char) readbytes));
}
} catch (IOException ee) {
JOptionPane.showMessageDialog(this, message1, title, type);
}
String closemessage = "关闭文件发生错误!";
try {
inputfile.close();
} catch (IOException ee) {
JOptionPane.showMessageDialog(this, closemessage, title, type);
}
}
}
}