Réussir à cocher des JcheckBox suite à un événement
Bonjour,
Je souhaite cocher toute une liste de noms située à gauche de mon interface lorsque l'utilisateur coche la JCheckBox, nommée "CKBX_20_ClasseEntiere" qui lui propose cette option.
Ma liste de JCheckBox est un tableau de JCheckBox, nommé "tab_CHK_Eleves". Elle est ajoutée dans un Panel nommé PAN_ListeElevesDevoir.
Au départ on voit que j'ai écrit quelques lignes pour la trier alphabétiquement.
Lorsque l'utilisateur valide la bonne division via "BTN_CreerDevoir_InformationsValider" la liste de JCheckbox s'affiche correctement.
Cependant lorsque, via "CKBX_20_ClasseEntiere", je souhaite cocher tous ces JCheckBox cela m'est impossible.
J'ai ajouté une ligne " System.out.println(c.getText());" pour vérifier que cette liste était bien connue, accessible depuis ma boucle: pas de problème, la liste de noms s'affiche.
Je me demande donc d'où vient mon problème. Qu'est ce qui m'échappe?
Merci par avance.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
public void actionPerformed(ActionEvent e){
String nomClasse = CBX_11_Classes_CreerDevoir_Informations.getSelectedItem().toString();
JCheckBox[] tab_CHK_Eleves;
Classe classe = L_Classes.obtenirListeClasses().get(nomClasse);
tab_CHK_Eleves = new JCheckBox[classe.quelleListe().size()];
Collection<Eleve> c_Eleves = classe.quelleListe().values();
int i=0;
ArrayList<String> liste = new ArrayList<>();
for(Eleve eleve : c_Eleves)
{
liste.add(eleve.nom+" "+eleve.prenom);
}
Collections.sort(liste);
for (int j=0;j<liste.size();j++)
{
tab_CHK_Eleves[i] = new JCheckBox(liste.get(j));
tab_CHK_Eleves[i].setBackground(new Color(200, 173, 127));
i++;
}
////////////////////////////////////////////////////////
if(e.getSource() == BTN_CreerDevoir_InformationsValider)
{
if(TXT_21_CreerDevoir_Informations.getText().equals(""))
{
JOptionPane jop = new JOptionPane();
jop.showMessageDialog(this, "Vous n'avez pas précisél'intitulé du devoir.");
}
else
{
PAN_CreerDevoir_Informations.setEnabled(false);
LBL_10_Informations.setEnabled(false);
CBX_11_Classes_CreerDevoir_Informations.setEnabled(false);
LBL_20_Informations.setEnabled(false);
TXT_21_CreerDevoir_Informations.setEnabled(false);
BTN_CreerDevoir_InformationsValider.setEnabled(false);
PAN_CreerDevoir_Informations.setBorder(BorderFactory.createTitledBorder(line1, "Informations générales"));
PAN_CreerDevoir_ListeEleves.setBorder(BorderFactory.createTitledBorder(line2, "Liste des élèves"));
PAN_CreerDevoir_ListeEleves.setEnabled(true);
LBL_10_PAN_CreerDevoir_ListeEleves_Gauche.setEnabled(true);
CKBX_20_ClasseEntiere.setEnabled(true);
BTN_CreerDevoir_ListeElevesValider.setEnabled(true);
///Création de la liste des élèves de la classe
PAN_ListeElevesDevoir.setLayout(new BoxLayout(PAN_ListeElevesDevoir, BoxLayout.Y_AXIS));
for(JCheckBox c: tab_CHK_Eleves)
{
PAN_ListeElevesDevoir.add(c);
}
PAN_ListeElevesDevoir.setBackground(new Color(200, 173, 127));
PAN_Arbre.setVisible(false);
btn_A.setVisible(false);
btn_B.setVisible(false);
PAN_Listes.add(PAN_ListeElevesDevoir,"ListeElevesDevoir");
pile_Listes.show(PAN_Listes, "ListeElevesDevoir");
}
}
////////////////////////////////////////////////////////
if(e.getSource() == CKBX_20_ClasseEntiere){
for(JCheckBox c: tab_CHK_Eleves)
{
c.setSelected(true);
System.out.println(c.getText());
}
}
////////////////////////////////////////////////////////
if(e.getSource() == BTN_CreerDevoir_ListeElevesValider)
{
}
} |