Используйте для этого специальный обработчик столбцов:
public class ColorColumnRenderer extends DefaultTableCellRenderer
{
Color bkgndColor, fgndColor;
public ColorColumnRenderer(Color bkgnd, Color foregnd) {
super();
bkgndColor = bkgnd;
fgndColor = foregnd;
}
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);
cell.setBackground( bkgndColor );
cell.setForeground( fgndColor );
return cell;
}
}
Вы можете использовать этот рендер как этот (пример для одного столбца):
TableColumn tm = table.getColumnModel().getColumn(0);
tm.setCellRenderer(new ColorColumnRenderer(Color.lightGray, Color.blue));
Получив код изменения цвета, вы можете создать прослушиватель , который прослушивает изменения значений в модели таблицы и, проверяя изменения, вы можете применить нужные цвета к определенным столбцам.