每行之前的JRadioButtons

时间:2015-06-15 10:08:55

标签: java swing joptionpane jradiobutton

我有这个程序从文本文件中读取带有多项选择答案的问题,然后在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;
            }

1 个答案:

答案 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);
    }
}