我有这个程序从文本文件中读取带有多项选择答案的问题,然后在JOptionPane中显示它们的随机集合(在新窗格中非常有问题)。在我的文本文件中,问题和答案的4个选项都在一行中,然后我将它们分成新的行。现在我想尝试在每个答案之前添加JRadioButtons。有人可以帮助我吗?非常感谢你提前。这是我的代码:
Random random = new Random();
for (int i = 0; i < newRanQues; i++) {
int randIndex = random.nextInt(32) + 0;
String randomQuestion = questions.get(randIndex);
randomQuestions.add(randomQuestion);
String different = randomQuestion.replaceAll(";", "\n");
{
JOptionPane.showMessageDialog(null, different, "Question", JOptionPane.INFORMATION_MESSAGE);
JRadioButton answerA = new JRadioButton("A) " + answer[0]);
JRadioButton answerB = new JRadioButton("B) " + answer[1]);
JRadioButton answerC = new JRadioButton("C) " + answer[2]);
JRadioButton answerD = new JRadioButton("D) " + answer[3]);
ButtonGroup group = new ButtonGroup();
group.add(optionA);
group.add(optionB);
group.add(optionC);
group.add(optionD);
return;
}
答案 0 :(得分:1)
这应该这样做:
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class RadioButtonExample {
public static void main(String[] args) {
init();
}
private static void init() {
// create the jframe
JFrame jframe = new JFrame("Question");
// create the answers
String[] answer = { "red", "green", "yellow", "blue, no, red, no... arrrrrg" };
// create the radio buttons
JRadioButton answerA = new JRadioButton("A) " + answer[0]);
JRadioButton answerB = new JRadioButton("B) " + answer[1]);
JRadioButton answerC = new JRadioButton("C) " + answer[2]);
JRadioButton answerD = new JRadioButton("D) " + answer[3]);
// create the button group
ButtonGroup group = new ButtonGroup();
group.add(answerA);
group.add(answerB);
group.add(answerC);
group.add(answerD);
// add the question to the jframe
jframe.add(new JLabel("What is your favorite colour?"), BorderLayout.NORTH);
// create gridbag layout and constraints
GridBagLayout gbl = new GridBagLayout();
// create the panel using the gbl
JPanel pan = new JPanel(gbl);
// create the constraints
GridBagConstraints cons = new GridBagConstraints();
cons.gridwidth = 1;
cons.fill = GridBagConstraints.HORIZONTAL;
// answer 1
cons.gridx = 0;
cons.gridy = 1;
pan.add(answerA, cons);
// answer 1
cons.gridx = 0;
cons.gridy = 2;
pan.add(answerB, cons);
// answer 1
cons.gridx = 0;
cons.gridy = 3;
pan.add(answerC, cons);
// answer 1
cons.gridx = 0;
cons.gridy = 4;
pan.add(answerD, cons);
// add the panel to the jframe
jframe.add(pan, BorderLayout.CENTER);
// show the jframe
jframe.setSize(400, 400);
jframe.setVisible(true);
}
}