答案:通过Swing组件构建简易记事本,实现文本编辑、保存、打开功能。1. 使用JFrame和JTextArea搭建主窗口与滚动输入区;2. 添加JMenuBar实现文件菜单,结合JFileChooser与FileReader/FileWriter完成文件操作;3. 增加自动换行、清空文本、关闭提示等功能提升体验;4. 最终可打包为可执行JAR文件,便于运行。
开发一个简易记事本应用是学习Java图形用户界面(GUI)编程的绝佳方式。通过Swing组件,你可以快速构建具备基本文本编辑、保存和打开功能的应用程序。下面将一步步带你实现一个功能完整但简洁的记事本工具。
使用Java Swing库中的JFrame作为主窗口容器,并添加一个JTextArea用于文本输入,配合JScrollPane实现滚动功能。
示例代码:
import javax.swing.*;
public class SimpleNotepad {
private JFrame frame;
private JTextArea textArea;
public SimpleNotepad() {
frame = new JFrame("简易记事本");
textArea = new JTextArea();
// 添加滚动条
JScrollPane scrollPane = new JScrollPane(textArea);
frame.add(scrollPane);
// 设置窗口属性
frame.setSize(600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null); // 居中显示
frame.setVisible(true);
}
}
为记事本添加“文件”菜单,包含“新建”、“打开”、“保存”和“退出”选项。使用JMenuBar、JMenu和JMenuItem构建菜单结构,并绑定事件监听器。
关键实现:
部分代码示例:
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenuItem openItem = new JMenuItem("打开");
JMenuItem saveItem = new JMenuItem("保存");
openItem.addActionListener(e -> openFile());
saveItem.addActionListener(e -> saveFile());
fileMenu.add(openItem);
fileMenu.add(saveIte
m);
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
private void openFile() {
JFileChooser chooser = new JFileChooser();
int result = chooser.showOpenDialog(frame);
if (result == JFileChooser.APPROVE_OPTION) {
try (FileReader reader = new FileReader(chooser.getSelectedFile())) {
textArea.read(reader, null);
} catch (Exception ex) {
JOptionPane.showMessageDialog(frame, "无法打开文件:" + ex.getMessage());
}
}
}
private void saveFile() {
JFileChooser chooser = new JFileChooser();
int result = chooser.showSaveDialog(frame);
if (result == JFileChooser.APPROVE_OPTION) {
try (FileWriter writer = new FileWriter(chooser.getSelectedFile())) {
textArea.write(writer);
} catch (Exception ex) {
JOptionPane.showMessageDialog(frame, "无法保存文件:" + ex.getMessage());
}
}
}
让记事本更实用,可以加入以下改进:
完成编码后,可将项目导出为可执行JAR文件。在IDE(如IntelliJ IDEA或Eclipse)中使用“Export Runnable JAR”功能打包,之后双击即可运行,无需配置开发环境。
确保处理异常情况,比如文件权限不足或磁盘满等问题,提升程序健壮性。
基本上就这些。一个功能清晰、界面简洁的Java记事本就完成了。它虽小,却涵盖了GUI设计、事件处理和文件操作等核心知识点,非常适合初学者练手。