要java可视化一个界面,要求给出题目同时下方有一个输入的文本框,点击下方按钮“提交”后,文本框内的值会赋给answer,经过一系列处理后,如果错误,会有一个弹窗回复,点击后回归重来,如果正确,则会显示下一个问题,,这是一个循环代码
时间: 2024-03-18 10:38:38 浏览: 58
以下是一个Java Swing可视化界面,实现了你的要求:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MyGUI extends JFrame implements ActionListener {
private JTextField inputField;
private JLabel questionLabel;
private JButton submitButton;
private String[] questions = {"问题1", "问题2", "问题3"}; // 问题列表
private int questionIndex = 0; // 当前问题序号
private String answer;
public MyGUI() {
this.setTitle("Java可视化界面");
this.setSize(400, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new GridLayout(3, 1));
questionLabel = new JLabel(questions[questionIndex], JLabel.CENTER);
questionLabel.setFont(new Font("微软雅黑", Font.PLAIN, 20));
this.add(questionLabel);
inputField = new JTextField();
inputField.setFont(new Font("微软雅黑", Font.PLAIN, 20));
this.add(inputField);
submitButton = new JButton("提交");
submitButton.setFont(new Font("微软雅黑", Font.PLAIN, 20));
submitButton.addActionListener(this);
this.add(submitButton);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == submitButton) {
answer = inputField.getText();
if (checkAnswer(answer)) {
questionIndex++;
if (questionIndex == questions.length) {
JOptionPane.showMessageDialog(this, "恭喜你完成了所有问题!", "完成", JOptionPane.INFORMATION_MESSAGE);
questionIndex = 0;
}
questionLabel.setText(questions[questionIndex]);
inputField.setText("");
} else {
JOptionPane.showMessageDialog(this, "回答错误,请重新作答!", "错误", JOptionPane.ERROR_MESSAGE);
inputField.setText("");
}
}
}
private boolean checkAnswer(String answer) {
// 检查答案是否正确
return true; // 简单起见,直接返回true
}
public static void main(String[] args) {
new MyGUI();
}
}
```
这个程序中,有一个JLabel用于显示问题,一个JTextField用于输入答案,一个JButton用于提交答案。当用户点击提交按钮时,程序会首先将输入框中的文本赋给answer变量,然后调用checkAnswer()方法检查答案是否正确。如果答案正确,程序会显示下一个问题;如果答案错误,程序会弹出一个对话框提示用户重新作答。如果用户完成了所有问题,程序会弹出一个对话框提示用户完成。
阅读全文