Swing JTable - Выделить выбранную ячейку цветом, отличным от цвета остальной выбранной строки?

У меня есть базовая таблица Swing JTable, и требуется, чтобы при щелчке по любой ячейке выделялась вся строка, а также ячейка, по которой щелкнули цвет должен отличаться от цвета остальной части выделенной строки.

В настоящее время у меня isRowSelectionAllowed as true

Я пробовал использовать пользовательский TableCellRenderer , который выглядит следующим образом: следует:

public class CustomTableCellRenderer extends DefaultTableCellRenderer
{

public static final DefaultTableCellRenderer    DEFAULT_RENDERER    = new DefaultTableCellRenderer();
    @Override
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

    if (isSelected) {
        c.setBackground(Color.red);
    }
    else {
        c.setForeground(Color.black);
        c.setBackground(Color.white);
    }
    return c;   
  }     
}

Но это, похоже, не сработало (вся строка была выделена красным).

Я также попытался установить свойство UIManager следующим образом:

UIManager.put("Table.focusCellBackground", 
         new javax.swing.plaf.ColorUIResource (Color.red));

Но, похоже, это тоже не работает (хотя, когда Я пробовал установить границу, используя

UIManager.put("Table.focusCellHighlightBorder", 
         new BorderUIResource.LineBorderUIResource(Color.red)); 

, что хорошо сработало)

Не могли бы вы дать какие-либо предложения, что я могу что нужно делать?

8
задан mKorbel 28 July 2011 в 16:59
поделиться