我可以在选项(单选按钮)随机播放之前计算得分/分数,如下面的代码所示。在Collection.shuffle()
之前,选项已修复,因为correctChoice
将始终分配到c2
单选按钮。所以我可以像
if (c2.isSelected())
score=score+2;
然后我改变选择。
QsL.setText(Question.get(i).getQs().toString());
c1.setText(Question.get(i).getChoiceOne());
c2.setText(Question.get(i).getCorrectChoice());
c3.setText(Question.get(i).getChoiceTwo());
scorelbl.setText(Question.get(i).getScore());
if (c2.isSelected()) {
score=score+2;
JOptionPane.showMessageDialog(null,score);
}
String one = Question.get(i).getChoiceOne();
String two = Question.get(i).getChoiceTwo();
String three = Question.get(i).getCorrectChoice();
List<String> choices = Arrays.asList(one, two, three);
Collections.shuffle(choices);
c1.setText(choices.get(0).toString());
c2.setText(choices.get(1).toString());
c3.setText(choices.get(2).toString());
提前感谢您的回答。我已经编辑了这篇文章。
答案 0 :(得分:3)
你的片段会改变字符串,这会掩盖正确的答案。相反,将每个选项的文本,正确的状态以及分配给它的按钮关联起来:
class Choice {
String text;
Boolean correct;
JRadioButton button;
}
让Question
包含List<Choice> choices
,随时可以随机播放并分配给按钮。在按钮的操作ActionListener
中,在choices
中搜索匹配按钮,以确定所选选项的正确性。相应地更新分数。