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