用Java创建一个简单的文本编辑器,参考Windows记事本程序,可打开文件对话框选择打开一个文件,并在文本区进行编辑,然后把它保存起来。
时间: 2024-03-07 14:48:09 浏览: 20
好的,以下是一个简单的Java代码示例,实现了文本编辑器的打开、编辑和保存功能:
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class TextEditor extends JFrame implements ActionListener {
private JTextArea textArea;
private JFileChooser fileChooser;
private String currentFile;
public TextEditor() {
super("Text Editor");
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 创建“文件”菜单
JMenuItem openItem = new JMenuItem("打开");
openItem.addActionListener(this);
JMenuItem saveItem = new JMenuItem("保存");
saveItem.addActionListener(this);
menuBar.add(openItem);
menuBar.add(saveItem);
// 创建文本区
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane, BorderLayout.CENTER);
// 创建文件选择器
fileChooser = new JFileChooser();
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("打开")) {
openFile();
} else if (command.equals("保存")) {
saveFile();
}
}
private void openFile() {
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
textArea.setText("");
while ((line = reader.readLine()) != null) {
textArea.append(line + "\n");
}
reader.close();
currentFile = file.getAbsolutePath();
} catch (IOException e) {
JOptionPane.showMessageDialog(this, "无法打开文件 " + file.getName() + ": " + e.getMessage());
}
}
}
private void saveFile() {
if (currentFile != null) {
try {
FileWriter writer = new FileWriter(currentFile);
writer.write(textArea.getText());
writer.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(this, "无法保存文件 " + currentFile + ": " + e.getMessage());
}
} else {
int returnVal = fileChooser.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(file);
writer.write(textArea.getText());
writer.close();
currentFile = file.getAbsolutePath();
} catch (IOException e) {
JOptionPane.showMessageDialog(this, "无法保存文件 " + file.getName() + ": " + e.getMessage());
}
}
}
}
public static void main(String[] args) {
new TextEditor();
}
}
```
这个示例代码使用了Swing库来实现界面,通过JFileChooser类实现了文件对话框,并且实现了打开、编辑和保存文件的功能。希望这个示例代码能对你有所帮助!