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 : Sélectionner tout - Visualiser dans une fenêtre à part
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) { } }
Partager