Переопределить prepareRenderer()
метод, когда вы инициализируете свой табличный объект, поместите ваши конкретные условия, чтобы соответственно изменить цвета, тогда изменения цвета будут отражены в вашем приложении, как вы определили. Предположим, у вас есть глобальная переменная JTable table
, и пусть model
будет вашим экземпляром DefaultTableModel:
table = new JTable( model )
{
public Component prepareRenderer ( TableCellRenderer r, int row, int col )
{
Component comp = super.prepareRenderer( r, row, col );
if ( col == 6 && !isCellSelected( row, col ) )
{
if ( table.getValueAt( row, col ) < 0 )
comp.setBackground( Color.RED );
else
comp.setBackground( Color.GREEN );
}
return comp;
}
};
Приведенный выше код проверяет col == 6
, потому что вы хотите раскрасить 7-й столбец, который соответствует индексу 6 столбца (он начинается с 0). Во внутреннем операторе if он проверяет значения ячеек и соответственно меняет цвет фона ячейки.