用Java写一个简易记事本程序,要求能够实现编辑、保存、另存为、查找替换功能
时间: 2023-07-10 12:41:02 浏览: 112
好的,我可以给您提供一个简单的Java记事本程序的代码,实现编辑、保存、另存为、查找替换功能。请参考以下代码:
```java
import java.io.*;
import java.util.Scanner;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class MyNotePad extends JFrame {
private static final long serialVersionUID = 1L;
private JTextArea textArea = new JTextArea();
private JFileChooser fileChooser = new JFileChooser();
private File file = null;
public MyNotePad() {
// 设置窗口的大小和位置
this.setSize(600, 400);
this.setLocationRelativeTo(null);
// 添加滚动条和文本域
JScrollPane scrollPane = new JScrollPane(textArea);
this.add(scrollPane);
// 设置窗口可见
this.setVisible(true);
}
// 编辑
public void edit() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入要编辑的内容:");
String input = scanner.nextLine();
if (input.equals(":wq")) {
break;
}
textArea.append(input + "\n");
}
}
// 保存
public void save() {
if (file == null) {
saveAs();
} else {
try {
FileWriter writer = new FileWriter(file);
writer.write(textArea.getText());
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 另存为
public void saveAs() {
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
file = fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(file);
writer.write(textArea.getText());
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 查找替换
public void findAndReplace() {
String findStr = JOptionPane.showInputDialog("请输入要查找的内容:");
if (findStr != null && !findStr.equals("")) {
String replaceStr = JOptionPane.showInputDialog("请输入要替换的内容:");
String text = textArea.getText();
String newText = text.replaceAll(findStr, replaceStr);
textArea.setText(newText);
}
}
public static void main(String[] args) {
MyNotePad notePad = new MyNotePad();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入命令(e-编辑,s-保存,sa-另存为,fr-查找替换,q-退出):");
String command = scanner.nextLine();
switch (command) {
case "e":
notePad.edit();
break;
case "s":
notePad.save();
break;
case "sa":
notePad.saveAs();
break;
case "fr":
notePad.findAndReplace();
break;
case "q":
System.exit(0);
break;
default:
System.out.println("无效的命令!");
break;
}
}
}
}
```
这是一个基于Java Swing的简单记事本程序,包含编辑、保存、另存为、查找替换功能。在命令行中输入相应的命令即可进行操作。
阅读全文