Bonjour,
Je voudrais modifier la couleur d'écriture dans un tableau seulement sur une colonne.
setForeground(Color.WHITE) marche pour tout le tableau.
Merci d'avance
Version imprimable
Bonjour,
Je voudrais modifier la couleur d'écriture dans un tableau seulement sur une colonne.
setForeground(Color.WHITE) marche pour tout le tableau.
Merci d'avance
Salut !
Peut-être un truc qui ressemblerait à ça ?
avoir une classe pour mon CellRenderer :
et au démarrage de la form contenant la table :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class couleur extends DefaultTableCellRenderer { public Component getTableCellRendererComponent (JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){ Component cell = super.getTableCellRendererComponent (table,value,isSelected,hasFocus,row,column); if(column == 1) { cell.setForeground(Color.RED); } else { cell.setForeground(Color.WHITE); } return cell; } }
jTable1.setDefaultRenderer(Object.class, new Couleur());
oui ?
Il suffit de créer un CellRenderer se basant sur le DefaultTableCellRenderer et son rendu (d'ou le super.getTable.... qui permet de récupérer le composant standard)
Puis de l'affecter à la colonne à l'index myIndex de la façon suivanteCode:
1
2
3
4
5
6
7 public class MyCellRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column); c.setForeground(Color.RED); return c; } }
Code:myTable.getColumnModel().getColumn(colIndex).setCellRenderer(new MyCellRenderer);
Parfait merci beaucoup