java写一个带保存编辑文本功能的文本编辑器的代码
时间: 2024-05-05 18:19:34 浏览: 68
好的,我会尽力回答您的问题。以下是一个基础的Java文本编辑器的代码,其中包含保存和编辑文本的功能:
```
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class TextEditor extends Frame implements ActionListener {
TextArea textArea;
String fileName = "Untitled";
public static void main(String[] args) {
TextEditor editor = new TextEditor();
editor.setVisible(true);
}
public TextEditor() {
setTitle(fileName + " - Text Editor");
setLayout(new BorderLayout());
textArea = new TextArea();
add(textArea, BorderLayout.CENTER);
MenuBar menuBar = new MenuBar();
setMenuBar(menuBar);
Menu fileMenu = new Menu("File");
menuBar.add(fileMenu);
MenuItem newMenuItem = new MenuItem("New");
newMenuItem.addActionListener(this);
fileMenu.add(newMenuItem);
MenuItem openMenuItem = new MenuItem("Open");
openMenuItem.addActionListener(this);
fileMenu.add(openMenuItem);
MenuItem saveMenuItem = new MenuItem("Save");
saveMenuItem.addActionListener(this);
fileMenu.add(saveMenuItem);
MenuItem exitMenuItem = new MenuItem("Exit");
exitMenuItem.addActionListener(this);
fileMenu.add(exitMenuItem);
setSize(500, 500);
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("New")) {
textArea.setText("");
fileName = "Untitled";
setTitle(fileName + " - Text Editor");
} else if (command.equals("Open")) {
FileDialog fileDialog = new FileDialog(this, "Open File", FileDialog.LOAD);
fileDialog.setVisible(true);
if (fileDialog.getFile() != null) {
fileName = fileDialog.getDirectory() + fileDialog.getFile();
setTitle(fileName + " - Text Editor");
readFile();
}
} else if (command.equals("Save")) {
FileDialog fileDialog = new FileDialog(this, "Save File", FileDialog.SAVE);
fileDialog.setVisible(true);
if (fileDialog.getFile() != null) {
fileName = fileDialog.getDirectory() + fileDialog.getFile();
setTitle(fileName + " - Text Editor");
writeFile();
}
} else if (command.equals("Exit")) {
System.exit(0);
}
}
private void readFile() {
try {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = reader.readLine()) != null) {
textArea.append(line + "\n");
}
reader.close();
} catch (IOException e) {
System.out.println("Error reading from file.");
}
}
private void writeFile() {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
textArea.write(writer);
writer.close();
} catch (IOException e) {
System.out.println("Error writing to file.");
}
}
}
```
这个文本编辑器使用了Java的AWT和事件驱动编程模型。在菜单栏中,用户可以选择新建、打开、保存以及退出。文本的编辑直接在文本框中完成。当用户点击打开或保存时,会弹出文件对话框以选择或指定文件名。
在`readFile()`和`writeFile()`方法中,程序使用了Java的输入/输出流API来读取和写入文件。
请注意,这段代码仅仅是一个基础模板,可以根据具体的需求进行修改。如果您想在程序中添加更多的功能, 您可以查看其他资源来获得更多信息。
阅读全文