Bonjour,
J'aimerai personnaliser un JTree de façon à avoir plusieurs icônes par feuille. Chaque icône indiquant un état spécifique. La méthode classique ne permet d'avoir qu'une seule icône (JLabel), il faut donc que j'utilise un JPanel.
Le problème est qu'avec des JPanel les lignes de mon JTree se chevauchent.
Voici le code, j'ai redéfinis DefaultTreeCellRenderer :
Qu'en pensez-vous ? Existe-t-il un moyen plus simple de faire ce que je veux ?
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 public class CustomTreeCellRenderer extends DefaultTreeCellRenderer { public Component getTreeCellRendererComponent( JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); JPanel jp = new JPanel(); jp.setBackground(Color.WHITE); jp.add(new JLabel(icons[ICON_LOGGED_OUT])); //icons: ImageIcon[] jp.add(new JLabel(icons[ICON_NOT_READY])); jp.add(new JLabel(value.toString())); return jp; } }
Partager