У меня есть JTable
, который показывает некоторые записи в приложении Java Swing. Пользователь работает только с целыми строками, а не с отдельными ячейками. Есть ли способ, которым я могу сосредоточиться на целый ряд JTable
? По умолчанию фокусируется только на ячейке, по которой щелкнул пользователь. Я использую другой цвет для фокуса, поэтому он не выглядит хорошо, если фокусируется только ячейка, а не весь ряд.
ОБНОВЛЕНИЕ: Это мой текущий код моего пользовательского TableCellRenderer
, проблема в том, что когда строка имеет фокус и окрашивается в цвет "фокус", а затем JTable
теряет фокус , только ячейка , которая имела фокус, перекрашивается в «выбранный» цвет, но все ячейки в выбранной строке следует перекрашивать в «выбранный» цвет.
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
// Has any cell in this row focus?
if(table.getSelectedRow() == row && table.hasFocus()) {
hasFocus = true;
}
if (hasFocus) {
this.setBackground(CustomColors.focusedColor);
} else if (isSelected) {
this.setBackground(CustomColors.selectedColor);
} else {
// alternate the color of every second row
if(row % 2 == 0) {
this.setBackground(Color.WHITE);
} else {
this.setBackground(CustomColors.grayBg);
}
}
setValue(value);
return this;
}