when I select a row in a table and want the method to set only the color in a specific column
Try using the overridden prepareRenderer() method suggested by @mKorbel.
code example:
Object[] columnNames = { "A", "B", "C", "D" }; Object[][] data = { { "abc", new Double(850.503), 53, true }, { "lmn", new Double(36.23254), 6, false }, { "pqr", new Double(8.3), 7, false }, { "xyz", new Double(246.0943), 23, true } }; JTable table = new JTable(data, columnNames) { @Override public Component prepareRenderer(TableCellRenderer renderer, int row, int col) { Component comp = super.prepareRenderer(renderer, row, col); Object value = getModel().getValueAt(row, col); if (getSelectedRow() == row) { if (value.equals(false)) { comp.setBackground(Color.red); } else if (value.equals(true)) { comp.setBackground(Color.green); } else { comp.setBackground(Color.white); } } else { comp.setBackground(Color.white); } return comp; } };
When selecting the first row:

When selecting the second row.

More details
EDIT
According to your last comment
Is it possible to change the color by cutting (selecting) a row in a table?
Yes, just remove the check for the selected row.
Object value = getModel().getValueAt(row, col); if (value.equals(false)) { comp.setBackground(Color.red); } else if (value.equals(true)) { comp.setBackground(Color.green); } else { comp.setBackground(Color.white); }
