利用Swing组件编写一个界面大小800×600像素的简易文本编辑器MyTextEditor.java,该编辑器带有菜单栏,且只有一个“文件”菜单,下含“保存”、“取消”和“退出”三个菜单条,要求: (1)程序启动后,多行文本输入框JTextArea中显示当前目录下myText.txt文件中原有内容,如果该文件不存在,则新建文件; (2)保存(菜单)功能:将编辑器界面输入的内容写入myText.txt文件中保存; (3)取消(菜单)功能:将文本框中内容清空,且清空myText.txt文件中内容; (4)退出(菜单)功能:退出程序。
时间: 2024-02-20 15:02:10 浏览: 75
好的,我会根据你的要求为你编写一个简易的文本编辑器MyTextEditor.java,具体实现如下:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyTextEditor extends JFrame implements ActionListener {
private JTextArea textArea;
private JMenu fileMenu;
private JMenuItem saveItem, cancelItem, exitItem;
public MyTextEditor() {
super("My Text Editor");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 创建文件菜单
fileMenu = new JMenu("文件");
menuBar.add(fileMenu);
// 创建“保存”菜单项
saveItem = new JMenuItem("保存");
saveItem.addActionListener(this);
fileMenu.add(saveItem);
// 创建“取消”菜单项
cancelItem = new JMenuItem("取消");
cancelItem.addActionListener(this);
fileMenu.add(cancelItem);
// 创建“退出”菜单项
exitItem = new JMenuItem("退出");
exitItem.addActionListener(this);
fileMenu.add(exitItem);
// 创建文本输入框并添加到窗口中
textArea = new JTextArea();
add(textArea);
// 读取文件内容并显示在文本输入框中
File file = new File("myText.txt");
if (file.exists()) {
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
textArea.append(line + "\n");
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == saveItem) {
// 保存文件内容
try {
FileWriter fw = new FileWriter("myText.txt");
fw.write(textArea.getText());
fw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == cancelItem) {
// 取消编辑并清空文件内容
textArea.setText("");
try {
FileWriter fw = new FileWriter("myText.txt");
fw.write("");
fw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} else if (e.getSource() == exitItem) {
// 退出程序
System.exit(0);
}
}
public static void main(String[] args) {
new MyTextEditor();
}
}
```
请注意,该程序需要在包含该程序的工作目录下存在myText.txt文件,否则程序会在启动时自动创建该文件。
阅读全文