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); } });
à 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
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); } } }
Partager