bonjour ,

J'ai un problème avec une JComboBox que lorsque je cliques dessus rien ne se passe . voici le code :

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
public class VuePromotionCreation extends javax.swing.JFrame implements Observer {
 
    private ModeleDisciplines modeleDisciplines;
 
    private ModeleEtudiants modeleEtudiants;
 
    private ComboBoxDomainesModel modelDomainesComboBox;
 
    /** Creates new form PromotionCreation */
    public VuePromotionCreation() {
        initDomaines();  // cette méthode initialise le modèle de la ComboBox
        modeleDisciplines = new ModeleDisciplines(
                ( (Metier.Etudes.Domaine)modelDomainesComboBox.getSelectedItem() ).
                getDisciplinesWithOptions()
                        );
 
        modeleEtudiants = new ModeleEtudiants(null);
 
        initComponents();
        initTable();
        this.setLocationRelativeTo(null);
    }
 
......
 
private void initDomaines() {
        modelDomainesComboBox = new ComboBoxDomainesModel(
                FaçadeDomaine.getInstance().getToutLesDomaines()
                );
 
        /*System.out.println(
                FaçadeDomaine.getInstance().getToutLesDomaines().size());*/
    }
 
 
....
private void bDomaineActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bDomaineActionPerformed
// TODO add your handling code here:
        System.out.println("click");  
    }


la méthode initComponents() contient le code d'initialisation suivant (bDomaine c'est la JComboBox):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
bDomaine.setModel(modelDomainesComboBox);
        bDomaine.setRenderer(modelDomainesComboBox.new ListRenderer());
        bDomaine.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                bDomaineItemStateChanged(evt);
            }
        });
        bDomaine.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bDomaineActionPerformed(evt);
            }
        });

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
76
77
78
79
80
/*
 * ComboBoxEnseignantModel.java
 *
 * Created on 17 juin 2007, 20:54
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
 
package Presentation.Promotion.Nouvelle.Modeles;
 
import Metier.Etudes.Domaine;
import java.awt.Component;
import java.util.List;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JList;
import javax.swing.event.ListDataListener;
 
/**
 *
 * @author bassim
 */
public class ComboBoxDomainesModel implements ComboBoxModel {
 
    private final List<Domaine> domaines;
    private int elementSel;
    /** Creates a new instance of ComboBoxEnseignantModel */
    public ComboBoxDomainesModel(List<Domaine> domaines) {
        this.domaines = domaines;
        elementSel = 0;
    }
 
    public void setSelectedItem(Object anItem) {
        elementSel = domaines.indexOf(anItem);
    }
 
    public Object getSelectedItem() {
        return domaines.get(elementSel);
    }
 
    public int getSize() {
        return domaines.size();
    }
 
    public Object getElementAt(int index) {
        return domaines.get(index);
    }
 
    public void addListDataListener(ListDataListener l) {
 
    }
 
    public void removeListDataListener(ListDataListener l) {
    }
 
    public class ListRenderer extends DefaultListCellRenderer {
 
        public Component getListCellRendererComponent(
        JList list,
	Object value,
        int index,
        boolean isSelected,
        boolean cellHasFocus) {
 
           if (index ==-1) 
               return  super.getListCellRendererComponent(list,
                    domaines.get(elementSel).getIntitule(),
                    index,isSelected,
                    cellHasFocus);
           else
               return  super.getListCellRendererComponent(list,
                    domaines.get(index).getIntitule(),
                    index,isSelected,
                    cellHasFocus);
 
        }
 
    }
}
à un certain moment du développement ça marchait normalement ,les évènements étaient détectés normalement ,mais je sais pas à quoi j'ai touché pour que ça marche plus . J'ai du passer toute la matinée à chercher le probleme