创建一个窗口应用,输入文件全路径,可以读入文件内容,显示在界面上,对界面中文本内容进行修改后,点击保存按钮可以将文本内容保存到文件。提示:使用JFileChooser控件,并对该控件设置ActionListener,获取已选择文件getSelectedFile()。将读取的文本内容,显示在JTextArea控件上。
时间: 2024-03-06 07:49:33 浏览: 19
好的,我明白了你的问题。以下是一个简单的Java Swing程序,实现了你所描述的功能:
```java
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class FileEditor extends JFrame implements ActionListener {
private JTextArea textArea;
private JButton saveButton;
public FileEditor() {
super("文件编辑器");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane);
saveButton = new JButton("保存");
saveButton.addActionListener(this);
add(saveButton, "South");
JFileChooser fileChooser = new JFileChooser();
fileChooser.addActionListener(this);
fileChooser.setApproveButtonText("打开");
fileChooser.showOpenDialog(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == saveButton) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setApproveButtonText("保存");
fileChooser.showSaveDialog(this);
File file = fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(file);
writer.write(textArea.getText());
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} else {
File file = ((JFileChooser)e.getSource()).getSelectedFile();
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
textArea.append(line + "\n");
}
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
new FileEditor().setVisible(true);
}
}
```
该程序使用了JFrame作为主窗口,包含一个JTextArea用于显示文件内容和一个JButton用于保存修改后的内容到文件。在构造函数中,我们创建了一个JFileChooser控件,并设置了其ActionListener为当前窗口本身。当用户选择了一个文件后,我们会在ActionListener中读取该文件的内容,并将其显示在JTextArea中。当用户点击保存按钮后,我们再次创建一个JFileChooser控件,用于选择要保存的文件,然后将JTextArea中的内容写入该文件中。
希望这个程序对你有所帮助!