таблица и размеры колонок

Jul 16, 2009 20:35

Опять я со своими нубскими вопросами ( Read more... )

Leave a comment

Comments 3

svaor July 16 2009, 17:44:38 UTC
Ячейки не могут быть типа JLabel. JTable - это не сетка компонентов. Это сетка, ячейки которой отрисовываются, например, одним рендрером - JLabel. Т.е. отрисовка таблицы может проводиться всего одним компонентом JLabel, одним рендерером. Таблица просит рендерер отрисовать ячейку, а не вставляет по компоненту в каждую ячейку.

Это я к тому, что к сожалению нельзя получить ячейку как JLabel, взять у нее размеры и на основе них выставить колонке максимальную, минимальную, предпочтительную и/или текущую ширину. Это нужно сделать до того, как начнет работать рендерер (так как ячейка при отрисовке уже имеет ширину, т.е. отрисовывается с уже вычисленным размером). Либо в процессе его работы, что может привести к множественному перерисовыванию таблицы.
Короче, надо выставить для TableColumn maxWidth (setMaxWidth()), а вот в какой момент это надо делать и какой задать размер - вопрос. Это надо смотреть конкретно по твоей задаче.

Ну а отключить горизонтальный скролинг - это выставить нужный horizontalScrollBarPolicy у JScrollPane.

Reply

aleks_pingvin July 16 2009, 17:49:50 UTC
Ясно, спасибо за ответ. Значит все таки прийдется мудрить с перерисовкой таблицы. Про скрол это я конечно в курсе)

Reply


jabberwack July 29 2009, 12:23:20 UTC
Если размерность таблицы в процессе работы с ней не изменяется (т.е. строчки не добавляются и не удаляются), то я бы предложил вообще сделать без JTable.
MigLayout (http://www.miglayout.com/) на обычной JPanel отлично сделает то, что нужно

Reply


Leave a comment

Up