У меня есть базовая таблица 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));
, что хорошо сработало)
Не могли бы вы дать какие-либо предложения, что я могу что нужно делать?