bonjour

j'utilise un composant "personnalisé", une jlist avec des cases à cocher, disponible à cette adresse : http://www.jroller.com/santhosh/date/20050611#jlist_with_checkboxes.

voici mon code :

la déclaration, dans la constructeur du jdialog
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
final JList list_typexams = new JList();
        final DefaultListModel<String> model_exams = new DefaultListModel<>();
        for (String type : Fenetre_2.Type_examen) {
            model_exams.addElement(Fenetre_2.find_corr_type(type));
        }
 
        list_typexams.setModel(model_exams);
 
        final CheckListManager mng_typexams = new CheckListManager(list_typexams);
        // mise a jour du modele via le checklistmanager
        int index = 0;
        for (String type : Fenetre_2.Type_examen) {
 
            if (Fenetre_2.oracle_typexam.contains(type)) {
                mng_typexams.getSelectionModel().addSelectionInterval(index, index);
            }
            index++;
        }
 
        scrollPane.setViewportView(list_typexams);
et son utilisation, plus loin dans le constructeur:
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
JButton okButton = new JButton("OK");
                okButton.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
 
                        /*
                         * 0.enregistrement
                         */
 
                        // ArrayList qui comprend tous les sites a true
                        Fenetre_2.oracle_site = new ArrayList<>();
                        int index = 0;
                        for (String site : Fenetre_2.Site) {
                            if (mng_sites.getSelectionModel().isSelectedIndex(index))
                                Fenetre_2.oracle_site.add(site);
                            index++;
                        }
                        // ArrayList qui comprend tous les type d'examens a
                        // true
                        Fenetre_2.oracle_typexam = new ArrayList<>();
                        index = 0;
                        for (String type : Fenetre_2.Type_examen) {
                            if (mng_typexams.getSelectionModel().isSelectedIndex(index))   <------
                                Fenetre_2.oracle_typexam.add(type);
                            index++;
                        }
mais en déboguant le programme je me suis rendu compte que la condition où se trouve la flèche pose un problème : le débogueur d'eclipse me dit que la variable mng_typexams est inaccessible, ne correspond à aucune variable.

pourquoi ne puis-je pas y accéder?

olivier

ps : le compilateur ne dit rien, et le débogueur non plus (mis à part que la variable n'est pas accessible)