Je ne sais pas si c'est un problème stupide que j'ai ou quoi, mais pour la vie de moi je ne peux pas trouver la solution. J'écris un programme de quiz avec 20 questions. Le programme pose chaque question et l'utilisateur a 5 choix qui sont 5 boutons JRadio une fois que l'utilisateur a choisi une réponse qu'il peut toucher à côté pour passer à la question suivante ou précédente pour réviser une question. Le problème que j'ai est une fois que l'utilisateur répond à une question et appuyez sur le bouton radio sélectionné reste sélectionné, ce que je veux dire est si une réponse A pour la question 1 et appuyez sur le choix suivant A sera sélectionné pour la question 2 et ainsi de suite. les 5 boutons radio sont dans un groupe de boutons et j'ai utilisé la méthode de sélection claire pour effacer la sélection cela fonctionne bien sauf si l'utilisateur appuie sur le bouton précédent pour revoir une question une fois qu'il appuie sur le bouton suivant pour continuer toutes les sélections dire que l'utilisateur répond à 10 questions et retourne à la question numéro 3 une fois qu'il a frappé à côté de revenir à la question 10 toutes les questions entre les deux seront effacées.JRadio Bouton Sélection numéro
Je vais ajouter les implémentations suivantes et précédentes ci-dessous. Toutes les idées seront très appréciées.
// implémente le bouton suivant
nextBT.setPreferredSize(new Dimension(70, 30));
nextBT.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
int nextQuestion = -1;
boolean answer = getAnswer(currentQuestion, selectedButton()).equals(getCorrectAnswer(currentQuestion));
questionHistory[currentHistoryIndex][0] = currentQuestion;
questionHistory[currentHistoryIndex][1] = selectedButton();
if (currentHistoryIndex == maxHistoryIndex) {
//generate next question number to use
int currentLevel = currentQuestion/25;
int nextLevel = currentLevel;
if (answer) {
if (currentLevel < 3) {
nextLevel++;
}
} else {
if (currentLevel > 0) {
nextLevel--;
}
}
while (true) {
int k = 0;
Random randomNum = new Random();
nextQuestion = nextLevel * 25 + (int) (randomNum.nextInt(25));
for (k = 0; k < maxHistoryIndex; k++) {
if (questionHistory[k][0] == nextQuestion) {
break;
}
}
if (k == maxHistoryIndex) {
break;
}
}
currentHistoryIndex++;
maxHistoryIndex++;
if (maxHistoryIndex == 19) {
nextBT.setEnabled(false);
} else {
nextBT.setEnabled(true);
}
} else {
// returning to question already on list
currentHistoryIndex++;
nextQuestion = questionHistory[currentHistoryIndex][0];
int nextAnswer = questionHistory[currentHistoryIndex][1];
setSelectedButton(nextAnswer);
}
if (currentHistoryIndex == 19) {
nextBT.setEnabled(false);
}
currentQuestion = nextQuestion;
questionHistory[currentHistoryIndex][0] = currentQuestion;
questionHistory[currentHistoryIndex][1] = selectedButton();
question.setText(questions[currentQuestion * 7]);
rb1.setText(questions[(currentQuestion * 7) + 1]);
rb2.setText(questions[(currentQuestion * 7) + 2]);
rb3.setText(questions[(currentQuestion * 7) + 3]);
rb4.setText(questions[(currentQuestion * 7) + 4]);
rb5.setText(questions[(currentQuestion * 7) + 5]);
previousBT.setEnabled(true);
//setSelectedButton(questionHistory[currentHistoryIndex][1]);
questionCountLB.setText("Question " + (currentHistoryIndex + 1) + " of 20");
//if(bg.isSelected()){
bg.clearSelection();
}
});
// implémente le bouton précédent
previousBT.setPreferredSize(new Dimension(120, 30));
previousBT.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
nextBT.setEnabled(true);
questionHistory[currentHistoryIndex][1] = selectedButton();
currentHistoryIndex--;
if (currentHistoryIndex == 0) {
previousBT.setEnabled(false);
}
if (currentHistoryIndex > 0) {
previousBT.setEnabled(true);
}
int nextQuestion = questionHistory[currentHistoryIndex][0];
currentQuestion = nextQuestion;
question.setText(questions[currentQuestion * 7]);
rb1.setText(questions[(currentQuestion * 7) + 1]);
rb2.setText(questions[(currentQuestion * 7) + 2]);
rb3.setText(questions[(currentQuestion * 7) + 3]);
rb4.setText(questions[(currentQuestion * 7) + 4]);
rb5.setText(questions[(currentQuestion * 7) + 5]);
setSelectedButton(questionHistory[currentHistoryIndex][1]);
questionCountLB.setText("Question " + (currentHistoryIndex + 1) + " of 20");
}
});
@mKorbel Quelle est la question? OP - Pour une meilleure aide plus tôt, postez un [SSCCE] (http://sscce.org/) et aussi s'il vous plaît répondez à ma question (à mKorbel). –