如何交替读取列表中的元素?

时间:2012-05-25 15:40:44

标签: java

您好我已定义了2个列表:

ArrayList<JLabel> questionsList = new ArrayList<JLabel>();
ArrayList<JRadioButton> answersList = new ArrayList<JRadioButton>();

我尝试以这样的格式阅读问题和答案:

1st Question 
  answer1
  answer2

2nd Question 
  answer1
  answer2
etc.

所以第一个问题是从列表 questionsList 中读取,然后我想从另一个列表中读取 answersList 该问题的所有答案等等。

在questionsList中我从mysql读取数据,它们以如下格式保存在JLabel中:
1.问题一 2.问题二等

在answersList中,我从mysql读取数据,并将它们保存在JRadioButtons中,格式如下:
ANSWER1
ANSWER2

到目前为止我的代码:

    int height = 0;

        for(int i1 =0; i1<questionsList.size(); i1++)
        {   
              client.insideFillPollPanel.add(questionsList.get(i1)).setBounds(20, 20+150*i1, 480, 14);

            height = 20+150*i1;  

            for(int i2 =0; i2<answersList.size(); i2++)
            client.insideFillPollPanel.add(answersList.get(i2)).setBounds(20, 50+30*i2, 480, 14);



        }

我如何解决它显示像第一种格式我显示如此问题然后asnwers问题和asnwers?

1 个答案:

答案 0 :(得分:4)

我建议你创建一个Question课程,其中包含问题和属于该问题的所有答案,然后,而不是

ArrayList<JLabel> questionsList = new ArrayList<JLabel>();
ArrayList<JRadioButton> answersList = new ArrayList<JRadioButton>();

您使用

ArrayList<Question> questions = new ArrayList<Question>();

(作为附注:对接口进行编程被认为是一种好习惯,所以不要将问题存储在ArrayList<Question>中,而是建议您选择List<Question>


例如:

class Question {

    JLabel questionLabel;
    List<JRadioButton> answers;

    public Question(String q, String... ans) {
        ...
    }
}