вы на самом деле не интересуетесь длиной строки (или ее отображением в конкретный шрифт / метрики).Вас интересует предпочитаемый размер рендеринга компонента, который визуализирует содержимое ячейки.Чтобы получить это, выполните цикл по всем строкам и запросите размер, например,
int width = 0;
for (row = 0; row < table.getRowCount(); row++) {
TableCellRenderer renderer = table.getCellRenderer(row, myColumn);
Component comp = table.prepareRenderer(renderer, row, myColumn);
width = Math.max (comp.getPreferredSize().width, width);
}
Или используйте JXTable (в проекте SwingX): у него есть метод pack (), который делает работу за вас :-)
Редактировать: причина, по которой предпочитает таблицу prepareRenderer, а не ручной вызов getXXRendererComponent для средства визуализации, заключается в том, что таблица может действительно украшать визуальные свойства renderComponent.Если эти декорации влияют на prefSize компонента, ручная конфигурация отключена.