Bonsoir,
J'ai un petit soucis avec la JList,j'ai creer la liste avec un setModel et j'aimerai mettre une image et personnaliser les items de la JList en fonction du nom d'une personne.
J'ai vu qu'il fallait utiliser un getListCellRenderComponent pour arriver a mettre une image et personnaliser cette JList.
Le probleme ces que j'y arrive seulement quand la personne clique a un endroit sur ma liste, mais si je tente de changer la methode sans faire attention a si la personne a clique sur mon items mais plutot de construire les items en fonction de leur nom et leur mettre une image et bien ca ne fonctionne pas:/
J'espere avoir été clair car ces pas facil a expliquer.

Voici mon 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
41
42
43
44
45
46
47
48
49
50
51
52
 
    public class Rendu extends JLabel implements ListCellRenderer {
       ImageIcon icon;
       ImageIcon selectIcon;
       Color selectCouleur = Color.RED;
       public  Rendu(){
          icon = new ImageIcon(getClass().getResource("/images/icone_online.gif"));
          selectIcon  = new ImageIcon(getClass().getResource("/images/icone_messenger_offline.png"));
       }
       public Component getListCellRendererComponent(JList list,
            Object value, // valeur à afficher
            int index, // indice d'item
            boolean isSelected, // l'item est-il sélectionné
            boolean cellHasFocus) // La liste a-t-elle le focus
       {
          String s = value.toString();
          int tailleListe=jList1.getModel().getSize();
          try{
          for(int i=0;i<listeContactOnline.size();i++){
              for(int k=0;k<tailleListe;k++){
                  if(listeContactOnline.get(i).equals(jList1.getModel().getElementAt(k))){
                 setBackground(list.getBackground());
                 setForeground(list.getForeground());
                 setText(s);
                 setIcon(icon);
                  }
                  else{
 
 
                  }
 
              }     
          }
          }catch(Exception e){
              System.out.println("erreur dans le getlistcellrender");
              e.printStackTrace();
          }/*
          if (isSelected) {
             setBackground(list.getSelectionBackground());
             setForeground(selectCouleur);
             setText(s+"  "+index);
             setIcon(selectIcon);
          }else{
          }*/
          setEnabled(list.isEnabled());
          setFont(list.getFont());
          setOpaque(true);
 
          return this;
       }
    }
}