答案:该程序使用Java Swing开发了一个简易记事本,包含新建、打开、保存和退出功能。通过JFrame构建主窗口,JTextArea实现文本编辑,配合JScrollPane支持滚动;利用JMenuBar、JMenu和JMenuItem创建文件操作菜单;通过JFileChooser选择文件,结合BufferedReader和BufferedWriter以UTF-8编码读写文本,避免中文乱码;并加入异常处理和保存提示,确保程序稳定性。完整代码示例涵盖了图形界面、事件响应与文件IO核心知识点,适合扩展如字体设置、查找替换等功能。

用Java开发一个简单的记事本程序,可以通过Swing图形界面库实现基本的文本编辑功能。这个程序能新建、打开、保存文件,并提供简单的菜单操作。下面是一个完整的实现思路和代码示例。
使用JFrame作为主窗口,JTextArea作为文本输入区域,支持多行编辑。
通过JMenuBar、JMenu和JMenuItem创建“文件”菜单,包含新建、打开、保存和退出选项。
利用Java的文件流处理文本读写。打开文件时使用BufferedReader逐行读取,保存时使用BufferedWriter写入。
立即学习“Java免费学习笔记(深入)”;
以下是一个简洁可运行的版本:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
<p>public class SimpleNotepad extends JFrame {
private JTextArea textArea;
private JFileChooser fileChooser;
private String currentFile = null;</p><pre class='brush:java;toolbar:false;'>public SimpleNotepad() {
setTitle("简易记事本");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 文本区域
textArea = new JTextArea();
add(new JScrollPane(textArea), BorderLayout.CENTER);
// 菜单栏
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenuItem newItem = new JMenuItem("新建");
JMenuItem openItem = new JMenuItem("打开");
JMenuItem saveItem = new JMenuItem("保存");
JMenuItem exitItem = new JMenuItem("退出");
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
// 文件选择器
fileChooser = new JFileChooser();
fileChooser.setFileFilter(new javax.swing.filechooser.FileNameExtensionFilter("文本文件", "txt"));
// 事件监听
newItem.addActionListener(e -> newFile());
openItem.addActionListener(e -> openFile());
saveItem.addActionListener(e -> saveFile());
exitItem.addActionListener(e -> System.exit(0));
setLocationRelativeTo(null);
}
private void newFile() {
if (textArea.getText().length() > 0) {
int result = JOptionPane.showConfirmDialog(this, "是否保存当前内容?", "提示", JOptionPane.YES_NO_CANCEL_OPTION);
if (result == JOptionPane.YES_OPTION) saveFile();
else if (result == JOptionPane.CANCEL_OPTION) return;
}
textArea.setText("");
currentFile = null;
}
private void openFile() {
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) {
StringBuilder content = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append("\n");
}
textArea.setText(content.toString());
currentFile = file.getAbsolutePath();
setTitle("简易记事本 - " + file.getName());
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "无法打开文件:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
private void saveFile() {
if (currentFile == null) {
saveAs();
} else {
saveToFile(currentFile);
}
}
private void saveAs() {
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
if (!file.getName().endsWith(".txt")) {
file = new File(file.getParent(), file.getName() + ".txt");
}
saveToFile(file.getAbsolutePath());
currentFile = file.getAbsolutePath();
setTitle("简易记事本 - " + file.getName());
}
}
private void saveToFile(String path) {
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path), StandardCharsets.UTF_8))) {
writer.write(textArea.getText());
} catch (IOException ex) {
JOptionPane.showMessageDialog(this, "保存失败:" + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeel());
} catch (Exception e) {
e.printStackTrace();
}
new SimpleNotepad().setVisible(true);
});
}}
基本上就这些。这个记事本虽然简单,但涵盖了图形界面、事件处理和文件操作的核心知识点。你可以在此基础上添加字体设置、查找替换等功能。不复杂但容易忽略的是编码问题,建议始终使用UTF-8读写文件,避免中文乱码。
以上就是Java中如何开发简单的记事本程序的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号