Bonsoir à tous,
Je souhaitais afficher des informations dans une JList en setEnabled(false). Cela dit la couleur que prenait le texte ne le rendait pas très lisible. J'ai donc décidé d'implémenter un ListCellRenderer:
Jusque là pas de problème, mon objectif était simplement d'avoir le texte à droite et surtout écris en noir, comme en setEnabled(true). Je n'ai plus qu'à mettre mon ListCellRenderer dans ma JList:
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 ListCellRenderer lcr = new ListCellRenderer() { public java.awt.Component getListCellRendererComponent (JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JLabel label = new JLabel(); label.setHorizontalAlignment(SwingConstants.RIGHT); label.setText(value.toString()); return label; } };
Seulement voilà, cette JList est à côté d'une autre JList qui elle n'est pas en setEnabled(false). Et je me suis aperçu que les espaces entre les item des deux JList étaient différents, ce qui avec une dizaine d'élements crée un décallage assez flagrant. Je dirais que les espaces dans la JList étant en setEnabled(true) sont de un ou deux pixel plus grand que celle qui utilise mon ListCellRenderer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part maList.setCellRenderer(lcr);
Si quelqu'un avait une idée sur la variable à modifier pour avoir le même espace entre les item ça m'interesserait beaucoup !
Merci d'avance...
Partager