Ниже для отдельной ячейки таблицы вы можете расширить ее для строки:
Сначала возьмите столбец таблицы, который вы хотите ввести, а затем добавьте TableCellRenderer
к нему следующим образом:
TableColumnModel columnModel = myTable.getColumnModel();
TableColumn column = columnModel.getColumn(5); // Give column index here
column.setCellRenderer(new MyTableCellRenderer());
Создайте класс MyTableCellRendere, который реализует TableCellRenderer и расширяет JLabel (чтобы мы могли придать ему цвет фона).Это будет выглядеть примерно так:
public class MyTableCellRenderer extends JLabel implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int col) {
JLabel jLabel = (JLabel) value;
setBackground(jLabel.getBackground());
setForeground(UIConstants.black);
setText(jLabel.getText());
return this;
}
}
Теперь в методе, где вы слушаете изменение значения ячейки таблицы, сделайте что-то вроде следующего:
JLabel label = new JLabel(changedValue);
// check for some condition
label.setBackground(Color.red); // set color based on some condition
myTable.setValueAt(label, 0, 5); // here 0 is rowNumber and 5 is colIndex that should be same used to get tableColumn before.