Probleme avec une JComboBox et ComboBoxModel
bonjour ,
J'ai un problème avec une JComboBox que lorsque je cliques dessus rien ne se passe . voici le code :
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
| 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:
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:
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 :?