J'ai implémenté un JTable nommé scrTbl dans un programme, et je souhaite pouvoir faire varier la couleur du texte dans une colonne de cette table, basée sur une variable booléenne externe appelée "up". Mon code lié à cet effort est le suivant.Java JTable Problèmes TableCellRenderer
TableColumn tcol = scrTbl.getColumnModel().getColumn(9);
tcol.setCellRenderer(new CustomTableCellRenderer());
public class CustomTableCellRenderer extends DefaultTableCellRenderer
{
@Override
public Component getTableCellRendererComponent (JTable table,
Object obj, boolean isSelected, boolean hasFocus, int row, int
column)
{
Component cell = super.getTableCellRendererComponent(table,
obj, isSelected, hasFocus, row, column);
if (up && (row == nmbrStocks))
{
cell.setForeground(Color.green);
}
if ((!up) && (row == nmbrStocks))
{
cell.setForeground(Color.red);
}
return cell;
}//Component
} //class getTableCell...
Le but est de définir la couleur du texte pour la colonne 9 et une rangée particulière (indexés de nmbrStocks) au vert ou le rouge, sur la base de la valeur maximale. Mais quand il s'exécute, il règle tout le texte en vert. Le moteur de rendu est-il appelé chaque fois qu'une cellule de la colonne 9 est écrite, ou quel est le protocole?
Merci d'avance pour toute aide.