用java图形界面的知识和输入谁出数据流,编写一个程序,点击read按钮,读入指定txt文件中的内容,显示在左边文本域中,点击sort按钮,将文本域中以“dba”开头的字符串提取出来,放在右边的文本域中,点击save按钮,将处理后右边的文本保存到一个新的txt文档中,给我一个完整的程序代码
时间: 2024-03-03 22:48:59 浏览: 129
以下是一个简单的Java程序,可以实现您的要求:
```
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class SortDBAStrings extends JFrame {
private static final long serialVersionUID = 1L;
private JTextArea leftTextArea, rightTextArea;
public SortDBAStrings() {
// 创建窗口
setTitle("Sort DBA Strings");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建面板和按钮
JPanel buttonPanel = new JPanel();
JButton readButton = new JButton("Read");
JButton sortButton = new JButton("Sort");
JButton saveButton = new JButton("Save");
buttonPanel.add(readButton);
buttonPanel.add(sortButton);
buttonPanel.add(saveButton);
// 创建文本域
leftTextArea = new JTextArea();
rightTextArea = new JTextArea();
// 添加滚动条
JScrollPane leftScrollPane = new JScrollPane(leftTextArea);
JScrollPane rightScrollPane = new JScrollPane(rightTextArea);
// 添加组件到窗口
add(buttonPanel, BorderLayout.NORTH);
add(leftScrollPane, BorderLayout.WEST);
add(rightScrollPane, BorderLayout.EAST);
// 读取文件
readButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
String line;
while ((line = reader.readLine()) != null) {
leftTextArea.append(line + "\n");
}
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
// 排序字符串
sortButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String[] lines = leftTextArea.getText().split("\\n");
rightTextArea.setText("");
for (String line : lines) {
if (line.startsWith("dba")) {
rightTextArea.append(line + "\n");
}
}
}
});
// 保存文件
saveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
writer.write(rightTextArea.getText());
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
}
public static void main(String[] args) {
SortDBAStrings frame = new SortDBAStrings();
frame.setVisible(true);
}
}
```
注意:在运行程序之前,需要将要读取的文本文件命名为"input.txt",并将生成的输出文件命名为"output.txt"。
阅读全文