Bonjour,

J'ai une jComboBox avec un ListCellRenderer pour afficher des icones et du texte.
Mes enregistrements se listent bien et s'affichent bien.
Lorsque je clique dessus, je retrouve les bons texte SAUF pour le premier !!!!

Je vois ou ca coince ...
Si vous avez une idée ?

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
public JComboBox getJComboBoxImage() {
	// Chargement des images et de création du tableau d'indices.
	String home = System.getProperty("user.dir");
	couleursComboBox[0][0]= "Rouge";
	couleursComboBox[0][1]= "\\images\\rouge.jpg";
	couleursComboBox[1][0]= "Vert";
	couleursComboBox[1][1]= "\\images\\vert.jpg";
	couleursComboBox[2][0]= "Bleu";
	couleursComboBox[2][1]= "\\images\\bleu.jpg";
	couleursComboBox[3][0]= "Violet";
	couleursComboBox[3][1]= "\\images\\violet.jpg";
	couleursComboBox[4][0]= "Orange";
	couleursComboBox[4][1]= "\\images\\orange.jpg";
 
	//Création des tableaux
       	imagesComboBox = new ImageIcon[couleursComboBox.length];
       	Integer[] intArray = new Integer[couleursComboBox.length];
 
	for (int i = 0; i < couleursComboBox.length; i++) {
	        intArray[i] = new Integer(i);
	        imagesComboBox[i] = new ImageIcon((String)home.substring(0,home.length()-9).trim() + (String)couleursComboBox[i][1].trim());
	            if (imagesComboBox[i] != null) {
	                        imagesComboBox[i].setDescription(couleursComboBox[i][0]);
	            }
	            System.out.println ("List : " + i + " " + intArray[i] + " " + imagesComboBox[i].getDescription());
	  }
 
	//Création de la jcombobox
	ColList = new JComboBox(intArray);
	SimulProgIHM.ComboBoxRenderer renderer= new SimulProgIHM.ComboBoxRenderer();
	renderer.setPreferredSize(new Dimension(150, 30));
	ColList.setRenderer(renderer);
 
	//ColList.setMaximumRowCount(3);
	//ColList.setSelectedIndex(-1);
 
	//Ecoute le changement
	ColList.addItemListener(new java.awt.event.ItemListener() {
	public void itemStateChanged(java.awt.event.ItemEvent e) {	
		// TODO Auto-generated Event stub itemStateChanged()
		if (e.getStateChange() == 2)
		{
			//Ici SelectedIndex n'est plus egal à la value du ListCellRenderer !! 
			System.out.println ("ColList : " + ColList.getSelectedIndex() + " " + ((JLabel) ColList.getRenderer()).getText() + ((JLabel) ColList.getRenderer()).toString());
		}
	}
	});
	ColList.setVisible(false);
	return ColList;
}