Правильный размер заголовка для одного столбца JTable - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть таблица с 3 столбцами, и я хочу, чтобы первый размер был минимальным.Заголовок «Уровень», и кажется, что он составляет 25-29 пикселей в зависимости от используемого мной шрифта / ОС.Однако заголовок таблицы, по-видимому, требует по крайней мере 35 в Windows и 52 в Mac, чтобы отображать ее без эллипсов.Я не могу понять, зачем нужно дополнительное пространство (нет границ и т. Д.).

Я наконец-то обнаружил, что следующий код даст требуемый размер в Windows (35), но в Mac он возвращает 36, чтонедостаточно (скорее всего из-за того, что индикатор стрелки сортировки находится рядом с текстом, а не над ним) ...

table.getTableHeader (). getDefaultRenderer (). getTableCellRendererComponent (null, table.getColumnModel (). getColumn (0) .getHeaderValue (), false, false, 0, 0) .getPreferredSize (). width

Как правильно сделать это независимо от платформы?Или есть ли способ для Mac рассчитать дополнительное пространство, необходимое для того, чтобы мне не пришлось жестко кодировать что-то вроде добавления 15 или около того пикселей к приведенному выше результату?

1 Ответ

1 голос
/ 12 сентября 2011

Я бы придерживался setPreferredScrollableViewportSize(), и подход, предложенный в Установка и изменение ширины столбцов , затем pack().

...