У меня есть таблица с пользовательской моделью таблицы, которая имеет два столбца.Столбец 0 - это класс ImageIcon, а Столбец 1 - это класс String.
public Class<?> getColumnClass(int col) {
if (col == 0) {
return ImageIcon.class;
} else {
return String.class;
}
}
Когда я определяю новый класс TableCellRenderer, добавляемый в столбцы, чтобы я мог стилизовать ячейки, он перезаписывает класс ImageIcon иустанавливает его в строку.
public class CustomTableCellRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent (JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int
column)
{
Component cell = super.getTableCellRendererComponent(table,
obj, isSelected, hasFocus, row, column);
if(isSelected)
cell.setBackground(Color.BLUE);
return cell;
}
}
Любые идеи о том, как это исправить?
Моя ошибка, она вроде как скрыта:
Когда я определяюновый класс TableCellRenderer, добавляемый в столбцы, чтобы я мог стилизовать ячейки, он перезаписывает класс ImageIcon и устанавливает для него значение String.
Поэтому проблема заключается в том, что при определении этого класса TableCellRendererчтобы стилизовать мою таблицу, столбцы ImageIcon в моей таблице превращаются в строки типа «Файл: ...» вместо действительного значка.