Salut à tous !
J'essaye d'implémenter un ListCellRenderer pour avoir dans une JList un résultat style "Explorateur Windows", à priori rien de compliqué, mais j'ai beau recopier des codes qui marche le mien n'arrive pas au bon résultat.. Bref voici ce que j'ai :
Alors le problème, c'est quand j'affecte ce Renderer pour une liste je vois les bordures des cases, ainsi que la couleur de fond, qui s'adapte bien en fonction de si la case est sélectionnée ou non, mais c'est tout ! Avant j'affichais exactement le même objet mais dans un JPanel standard et là on voyait tout bien, et maintenant que je le renvois à travers le renderer, impossible d'afficher les composants qui sont à l'intérieur... 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 public class SharedImagePanel extends javax.swing.JPanel implements ListCellRenderer { private String path; private String fileName; private Icon image = null; private Color selectedBackColor; public SharedImagePanel(SharedImage image, boolean selected) { super(); selectedBackColor = new Color(73,196,255); path = image.getPath(); fileName = image.getName(); this.image = image.getImage(); if(selected) setBackground(selectedBackColor); initComponents(); } public java.awt.Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { return new SharedImagePanel((SharedImage)value,isSelected); } private void initComponents() { ... //Initialisations à partir de l'éditeur } // Variables declaration - do not modify private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel nameLabel; // End of variables declaration }
Partager