请使用swing写一个记事本
时间: 2023-09-01 21:10:44 浏览: 107
Swing记事本
4星 · 用户满意度95%
好的,以下是一个简单的记事本程序:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class SimpleNotepad extends JFrame implements ActionListener {
private JTextArea textArea;
private JFileChooser fileChooser;
public SimpleNotepad() {
super("Simple Notepad");
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 创建文件菜单
JMenu fileMenu = new JMenu("File");
menuBar.add(fileMenu);
// 创建打开菜单项
JMenuItem openMenuItem = new JMenuItem("Open");
openMenuItem.addActionListener(this);
fileMenu.add(openMenuItem);
// 创建保存菜单项
JMenuItem saveMenuItem = new JMenuItem("Save");
saveMenuItem.addActionListener(this);
fileMenu.add(saveMenuItem);
// 创建退出菜单项
JMenuItem quitMenuItem = new JMenuItem("Quit");
quitMenuItem.addActionListener(this);
fileMenu.add(quitMenuItem);
// 创建文本区域
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane);
// 初始化文件选择器
fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.setCurrentDirectory(new File("."));
// 设置窗口大小和关闭方式
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (actionCommand.equals("Open")) {
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
File file = fileChooser.getSelectedFile();
FileReader reader = new FileReader(file);
textArea.read(reader, null);
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
} else if (actionCommand.equals("Save")) {
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
try {
File file = fileChooser.getSelectedFile();
FileWriter writer = new FileWriter(file);
textArea.write(writer);
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
} else if (actionCommand.equals("Quit")) {
System.exit(0);
}
}
public static void main(String[] args) {
new SimpleNotepad();
}
}
```
这个程序使用了 Swing 组件来创建一个简单的记事本。它包含一个菜单栏,可以打开、保存和退出文件,以及一个文本区域,用于输入和编辑文本。程序通过实现 ActionListener 接口来处理菜单项的动作事件。打开和保存文件时,使用了 JFileChooser 组件来选择文件。
阅读全文