java实现从文件读取题目,在线问答GUI小程序。
时间: 2023-06-20 19:07:58 浏览: 64
实现这个小程序需要以下步骤:
1. 创建一个GUI界面,可以使用Java Swing或JavaFX库来创建。界面上应该有一个文本框用于显示问题和输入答案,还有一些按钮用于控制程序的运行。
2. 创建一个题目数据文件,可以使用Excel或文本文件来存储题目和答案。每行应该包含一个问题和其对应的答案,用逗号或制表符分隔。
3. 在Java程序中读取题目数据文件。可以使用Java的文件读取库来读取文件,在程序中加载题目和答案,并将其存储在内存中。
4. 实现一个算法来匹配问题和答案。可以使用基于关键字匹配或模式匹配的算法来比较问题和答案。
5. 在用户输入问题时,使用算法匹配问题和答案,并将答案显示在文本框中。
下面是一个简单示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class QAProgram extends JFrame {
private static final long serialVersionUID = 1L;
private Map<String, String> qaMap = new HashMap<>();
private JTextField inputField = new JTextField(20);
private JTextArea outputArea = new JTextArea(10, 20);
public QAProgram() {
setTitle("QA Program");
setSize(300, 300);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.add(inputField);
JButton searchButton = new JButton("Search");
searchButton.addActionListener(e -> search());
panel.add(searchButton);
JScrollPane scrollPane = new JScrollPane(outputArea);
panel.add(scrollPane);
add(panel);
loadQA();
}
private void loadQA() {
try (BufferedReader reader = new BufferedReader(new FileReader("questions.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split("\\t");
qaMap.put(parts[0], parts[1]);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void search() {
String question = inputField.getText();
String answer = qaMap.get(question);
if (answer != null) {
outputArea.setText(answer);
} else {
outputArea.setText("Sorry, I don't know the answer.");
}
}
public static void main(String[] args) {
QAProgram program = new QAProgram();
program.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
program.setVisible(true);
}
}
```
在这个例子中,我们创建了一个QAProgram类,它继承自JFrame类,并创建了一个GUI界面。在loadQA()方法中,我们从文件中加载了题目和答案,并将其存储在qaMap中。在search()方法中,我们从输入框中读取用户输入的问题,并使用qaMap来查找答案。如果找到了答案,我们将其显示在输出文本框中。如果没有找到答案,我们显示一个“我不知道”的消息。