请用java写一个使用gui按钮流式读取txt文件的代码
时间: 2024-09-13 15:11:44 浏览: 47
在Java中,可以使用Swing库中的JFrame和JButton组件来创建图形用户界面(GUI),并且使用FileReader和BufferedReader类来实现流式读取文本文件。以下是一个简单的示例代码,展示了如何创建一个窗口,其中包含一个按钮,用户点击按钮后,程序将流式读取一个txt文件并显示其内容。
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
public class ReadFileWithButton extends JFrame {
private JTextArea textArea;
private BufferedReader reader;
private JButton readButton;
public ReadFileWithButton() {
// 创建文本区域用于显示文件内容
textArea = new JTextArea();
textArea.setEditable(false);
// 创建按钮
readButton = new JButton("读取文件");
readButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
readFile();
}
});
// 创建面板并添加组件
JPanel panel = new JPanel();
panel.add(readButton);
add(panel, BorderLayout.NORTH);
add(new JScrollPane(textArea), BorderLayout.CENTER);
// 设置窗口属性
setTitle("读取文件示例");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // 窗口居中
}
private void readFile() {
// 文件路径
String filePath = "example.txt";
try {
// 使用FileReader和BufferedReader流式读取文件
reader = new BufferedReader(new FileReader(filePath));
String line;
textArea.setText(""); // 清空文本区域
while ((line = reader.readLine()) != null) {
textArea.append(line + "\n"); // 将读取的每一行添加到文本区域
}
reader.close(); // 关闭流
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(this, "文件未找到,请检查路径。",
"错误", JOptionPane.ERROR_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(this, "读取文件时发生错误。",
"错误", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
// 在事件调度线程中运行GUI创建代码,以确保线程安全
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ReadFileWithButton readFileWithButton = new ReadFileWithButton();
readFileWithButton.setVisible(true);
}
});
}
}
```
这段代码创建了一个带有文本区域和按钮的简单GUI。点击按钮时,会触发`readFile`方法,该方法尝试打开一个名为"example.txt"的文件并将其内容读取到文本区域中。请注意,你需要将"example.txt"替换为你想要读取的文件的路径。
阅读全文