以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
创建一个简易的Java Swing记事本程序是一个不错的练习,可以帮助你熟悉Swing组件和事件处理。下面是一个简单的示例代码,实现了你提出的要求:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleNotepad extends JFrame {
private JTextArea textArea;
private JMenuBar menuBar;
private JMenu fileMenu;
private JMenuItem openItem, saveItem, exitItem;
public SimpleNotepad() {
setTitle("简易记事本");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initUI();
}
private void initUI() {
// 创建文本域
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
getContentPane().add(scrollPane, BorderLayout.CENTER);
// 创建菜单栏
menuBar = new JMenuBar();
// 创建文件菜单
fileMenu = new JMenu("文件");
menuBar.add(fileMenu);
// 创建菜单项
openItem = new JMenuItem("打开");
saveItem = new JMenuItem("保存");
exitItem = new JMenuItem("退出");
// 为菜单项添加事件监听器
openItem.addActionListener(e -> openFile());
saveItem.addActionListener(e -> saveFile());
exitItem.addActionListener(e -> System.exit(0));
// 将菜单项添加到文件菜单中
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.addSeparator(); // 添加分隔线
fileMenu.add(exitItem);
// 设置菜单栏
setJMenuBar(menuBar);
}
// 打开文件
private void openFile() {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
textArea.read(fileChooser.getSelectedFile().toPath(), null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
// 保存文件
private void saveFile() {
JFileChooser fileChooser = new JFileChooser();
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
textArea.write(fileChooser.getSelectedFile().toPath());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
SimpleNotepad notepad = new SimpleNotepad();
notepad.setVisible(true);
});
}
}
这段代码实现了一个简易的记事本程序,具有打开、保存文件的功能,以及退出程序的功能。窗口的最小化、放大缩小和关闭按钮是JFrame的默认行为,不需要额外注册监听器。
关于参考资料,你可以查看以下链接:
- Oracle官方文档:Swing (Java SE 8)
- Java Swing教程:Java Swing Tutorial
请注意,这些链接可能随时更改,如果链接失效,请访问Oracle官方文档网站或搜索相关教程。
