Bonjour à tous,
Je tente, tant bien que mal, à changer le background color de ma JXTreeTable, chose que je fais d'habitude facilement avec une JTable.
J'ai procédé comme ceci :
- j'ai créé une inner-classe (pour accéder à ma JXTreeTable) qui étend de DefaultTableCellRenderer et j'ai redéfinie la méthode getTreeCellRendererComponent.
Voici le code, qui est supposé changer la couleur de toutes les lignes qui sont de type BOQWoodwork :
Malheureusement ca ne fonctionne uniquement quand je clique sur la ligne...comme ci l'appel était paresseux et pourtant si veux changer la couleur de toutes les cellules en appliquant cette méthode, ca fonctionne impec.
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 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Object o = treeTable.getValueAt(row, -1); // Récupere le defaultMutableTreeTableNode à la ligne fourni en paramètre Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if(o!=null){ DefaultMutableTreeTableNode node = (DefaultMutableTreeTableNode) o; if(node.getUserObject() instanceof BOQWoodwork){ comp.setForeground(Color.BLUE); comp.setBackground(Color.YELLOW); } } return comp; }
Je n'y comprend rien, est ce que quelqu'un à une idée ?
Merci et Bonne année avec un peu d'avance !
Partager