要编写一个简单的记事本程序,你可以使用Java GUI库(如Swing或JavaFX)来创建用户界面,并使用Java文件IO操作来读取和写入文本文件。
下面是一个使用Swing库来创建一个简单记事本程序的例子:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Notepad extends JFrame {
private JTextArea textArea;
private JFileChooser fileChooser;
public Notepad() {
super("记事本");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane, BorderLayout.CENTER);
fileChooser = new JFileChooser();
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenuItem newMenuItem = new JMenuItem("新建");
JMenuItem openMenuItem = new JMenuItem("打开");
JMenuItem saveMenuItem = new JMenuItem("保存");
JMenuItem exitMenuItem = new JMenuItem("退出");
newMenuItem.addActionListener(new NewActionListener());
openMenuItem.addActionListener(new OpenActionListener());
saveMenuItem.addActionListener(new SaveActionListener());
exitMenuItem.addActionListener(new ExitActionListener());
fileMenu.add(newMenuItem);
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
}
private class NewActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
textArea.setText("");
}
}
private class OpenActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int returnVal = fileChooser.showOpenDialog(Notepad.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
textArea.setText(sb.toString());
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
private class SaveActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int returnVal = fileChooser.showSaveDialog(Notepad.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(textArea.getText());
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
private class ExitActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
Notepad notepad = new Notepad();
notepad.setVisible(true);
});
}
}
这个记事本程序使用JFrame作为程序窗口,并在窗口中添加了一个JTextArea来显示文本内容。通过菜单栏提供了新建、打开、保存和退出等功能。用户可以通过菜单栏的打开和保存选项来选择文件进行读写操作。
以上代码只是一个简单的记事本示例,你可以根据自己的需求添加更多的功能和样式。