java实现从文件读取题目,在线问答GUI小程序。
时间: 2023-06-20 16:08:23 浏览: 82
下面是一个简单的Java程序,可以从文件中读取题目并在GUI界面上进行在线问答:
```java
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class OnlineQA extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JTextArea questionArea;
private JTextArea answerArea;
private JButton nextButton;
private BufferedReader reader;
private String currentQuestion;
public OnlineQA() {
super("Online QA");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
questionArea = new JTextArea();
questionArea.setEditable(false);
answerArea = new JTextArea();
answerArea.setEditable(false);
nextButton = new JButton("Next");
nextButton.addActionListener(this);
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(400, 50));
panel.add(nextButton);
getContentPane().add(questionArea, BorderLayout.NORTH);
getContentPane().add(answerArea, BorderLayout.CENTER);
getContentPane().add(panel, BorderLayout.SOUTH);
try {
reader = new BufferedReader(new FileReader("questions.txt"));
currentQuestion = reader.readLine();
questionArea.setText(currentQuestion);
} catch (IOException e) {
questionArea.setText("Error reading file: " + e.getMessage());
}
setVisible(true);
}
public static void main(String[] args) {
new OnlineQA();
}
@Override
public void actionPerformed(ActionEvent e) {
try {
String answer = answerArea.getText();
// TODO: save answer to file or database
answerArea.setText("");
currentQuestion = reader.readLine();
if (currentQuestion == null) {
questionArea.setText("No more questions.");
nextButton.setEnabled(false);
} else {
questionArea.setText(currentQuestion);
}
} catch (IOException ex) {
questionArea.setText("Error reading file: " + ex.getMessage());
}
}
}
```
在这个程序中,我们首先创建了一个包含问题文本区、答案文本区和“下一个”按钮的GUI界面,然后从文件中读取问题并将第一个问题显示在问题文本区中。
当用户单击“下一个”按钮时,我们将用户的答案保存到文件或数据库中,并读取下一个问题。如果没有更多的问题,我们将禁用“下一个”按钮。
当然,这只是一个简单的例子,您可以根据自己的需求对其进行修改和扩展。
阅读全文