import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class Notepad extends JFrame {
private JTextArea textArea = new JTextArea();
public Notepad() {
// 设置窗口标题
setTitle("Java记事本");
// 设置窗口大小
setSize(500, 400);
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 创建"文件"菜单
JMenu menuFile = new JMenu("文件");
menuBar.add(menuFile);
// 添加"新建"菜单项
JMenuItem menuItemNew = new JMenuItem("新建");
menuItemNew.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.setText("");
}
});
menuFile.add(menuItemNew);
// 添加"打开"菜单项
JMenuItem menuItemOpen = new JMenuItem("打开");
menuItemOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(Notepad.this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
textArea.setText("");
String line;
while ((line = br.readLine()) != null) {
textArea.append(line + "\n");
}
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
});
menuFile.add(menuItemOpen);
// 添加"保存"菜单项
JMenuItem menuItemSave = new JMenuItem("保存");
menuItemSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showSaveDialog(Notepad.this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(writer);
bw.write(textArea.getText());
bw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
});
menuFile.add(menuItemSave);
// 添加"退出"菜单项
JMenuItem menuItemExit = new JMenuItem("退出");
menuItemExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
menuFile.add(menuItemExit);
// 添加"编辑"菜单
JMenu menuEdit = new JMenu("编辑");
menuBar.add(menuEdit);
// 添加"复制"菜单项
JMenuItem menuItemCopy = new JMenuItem("复制");
menuItemCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.copy();
}
});
menuEdit.add(menuItemCopy);
// 添加"粘贴"菜单项
JMenuItem menuItemPaste = new JMenuItem("粘贴");
menuItemPaste.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.paste();
}
});
menuEdit.add(menuItemPaste);
// 添加"撤销"菜单项
JMenuItem menuItemUndo = new JMenuItem("撤销");
menuItemUndo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.undo();
}
});
menuEdit.add(menuItemUndo);
// 将文本区域组件添加到主窗口中
add(textArea);
// 显示主窗口
setVisible(true);
}
public static void main(String[] args) {
new Notepad();
}
}