Похоже, что «User1, User2, ...» должны быть заголовками столбцов, а не данными TableModel.
Данные для строк должны быть ImageIcon, а не именем файла.Рендерер НЕ должен читать данные из файла.
Прочтите раздел из учебника Swing по Как использовать таблицы для получения дополнительной информации об основах использования JTable.
Если вам нужны смешанные данные в каждой ячейке, вы можете получить средство визуализации для ячейки, проверив тип класса данных, хранящихся в ячейке.
JTable table = new JTable(data, columnNames)
{
public TableCellRenderer getCellRenderer(int row, int column)
{
int modelColumn = convertColumnIndexToModel(column);
Class cellClass = getModel().getValueAt(row, modelColumn).getClass();
return getDefaultRenderer( cellClass );
}
};
Конечно, вы бынеобходимо:
- убедиться, что значение ячейки не равно нулю
- сохранить изображение как ImageIcon, а не строковое имя файла