可以写注释码
时间: 2024-01-21 22:03:25 浏览: 26
好的,以下是带有注释的 Java 记事本代码示例:
```java
import java.awt.*;
import java.awt.event.*;
import java.io.*;
// 创建 Notepad 类,继承 Frame 类并实现 ActionListener 接口
public class Notepad extends Frame implements ActionListener {
// 声明菜单栏、文本区、菜单、菜单项、文件选择框和文件名等变量
MenuBar mb;
TextArea ta;
Menu file;
MenuItem open, save, exit;
FileDialog fd;
String filename;
// 构造函数,创建记事本界面
public Notepad() {
super("Untitled - Notepad");
// 创建菜单栏和菜单项,并添加事件监听器
mb = new MenuBar();
file = new Menu("File");
open = new MenuItem("Open");
save = new MenuItem("Save");
exit = new MenuItem("Exit");
open.addActionListener(this);
save.addActionListener(this);
exit.addActionListener(this);
file.add(open);
file.add(save);
file.addSeparator();
file.add(exit);
mb.add(file);
// 设置菜单栏
setMenuBar(mb);
// 创建文本区
ta = new TextArea();
add(ta);
// 添加窗口关闭事件监听器
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
// 设置窗口大小和可见性
setSize(600, 400);
setVisible(true);
}
// 处理菜单项事件
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == open) { // 如果点击了“Open”菜单项
fd = new FileDialog(this, "Open", FileDialog.LOAD); // 创建文件选择框
fd.setVisible(true);
if (fd.getFile() != null) { // 如果选择了文件
filename = fd.getDirectory() + fd.getFile(); // 获取文件名
setTitle(filename + " - Notepad"); // 设置窗口标题
readFile(); // 读取文件内容到文本区
}
} else if (ae.getSource() == save) { // 如果点击了“Save”菜单项
if (filename == null) { // 如果尚未保存过文件
fd = new FileDialog(this, "Save", FileDialog.SAVE); // 创建文件选择框
fd.setVisible(true);
if (fd.getFile() != null) { // 如果选择了文件
filename = fd.getDirectory() + fd.getFile(); // 获取文件名
setTitle(filename + " - Notepad"); // 设置窗口标题
writeFile(); // 将文本区内容保存到文件
}
} else { // 如果已经保存过文件
writeFile(); // 将文本区内容保存到文件
}
} else { // 如果点击了“Exit”菜单项
System.exit(0); // 退出程序
}
}
// 读取文件内容到文本区
private void readFile() {
try {
BufferedReader br = new BufferedReader(new FileReader(filename)); // 创建文件读取对象
String line;
ta.setText(""); // 清空文本区
while ((line = br.readLine()) != null) { // 逐行读取文件内容
ta.append(line + "\n"); // 添加到文本区
}
br.close(); // 关闭文件读取对象
} catch (IOException e) {
System.out.println("Error: " + e); // 输出读取文件错误信息
}
}
// 将文本区内容保存到文件
private void writeFile() {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(filename)); // 创建文件写入对象
bw.write(ta.getText()); // 写入文本区内容
bw.close(); // 关闭文件写入对象
} catch (IOException e) {
System.out.println("Error: " + e); // 输出写入文件错误信息
}
}
// 主函数,创建记事本对象
public static void main(String[] args) {
new Notepad();
}
}
```
带有注释的代码可以更好地理解代码的功能和实现。