java 简易记事本
时间: 2023-08-22 08:07:46 浏览: 91
以下是一个简单的 Java 记事本的实现,可以进行文本编辑、打开和保存文件等基本操作。
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.filechooser.FileNameExtensionFilter;
public class SimpleNotepad extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextArea textArea;
private JButton openButton, saveButton;
private JFileChooser fileChooser;
public SimpleNotepad() {
super("简易记事本");
// 创建文本区域
textArea = new JTextArea();
// 创建滚动面板
JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane, BorderLayout.CENTER);
// 创建按钮
openButton = new JButton("打开");
openButton.addActionListener(this);
saveButton = new JButton("保存");
saveButton.addActionListener(this);
// 创建按钮面板
JPanel buttonPanel = new JPanel();
buttonPanel.add(openButton);
buttonPanel.add(saveButton);
add(buttonPanel, BorderLayout.SOUTH);
// 创建文件选择器
fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter("文本文件 (*.txt)", "txt"));
// 设置窗口大小和可见性
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == openButton) {
// 打开文件
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try (BufferedReader reader = new BufferedReader(new FileReader(fileChooser.getSelectedFile()))) {
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append('\n');
}
textArea.setText(sb.toString());
} catch (IOException ex) {
ex.printStackTrace();
}
}
} else if (e.getSource() == saveButton) {
// 保存文件
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileChooser.getSelectedFile()))) {
writer.write(textArea.getText());
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new SimpleNotepad();
}
}
```
这个简单的记事本实现了打开、保存文件的功能,可以通过按钮实现。同时使用了 `JFileChooser` 类来选择文件,并且使用了 `JScrollPane` 类来实现滚动条。
阅读全文