Мне нужно выделить цвет выбранной строки в JTable. Я использую для этого свой собственный CellRenderer, и он работает, но когда я выбираю другую строку, предыдущая остается выделенной. Идея состоит в том, чтобы оставить синим только выбранный цвет, а остальные оставить в исходном цвете. Кроме того, я создаю парные столбцы: серый и непара: белый, так что это код в CellRenderer
private class Renderer extends DefaultTableCellRenderer
{
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column)
{
super.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
int columnIndex = table.getSelectedColumn();
int rowIndex = table.getSelectedRow();
if (columnIndex != -1 && rowIndex != -1){
this.setBackground(Color.BLUE);
} else {
if (row % 2 == 0) this.setBackground(Color.decode("0xF9F9F9"));
else this.setBackground(Color.decode("0xF1F1F1"));
}
return this;
}
}
РЕДАКТИРОВАТЬ: F1F1F1 - это цвет, почти белый, а F9F9F9F9 - светло-серый