2013-04-09 3 views
0

У меня есть JTable, построенный с использованием DefaultModel, который отображается в JPane, но я хотел бы изменить размер таблицы, чтобы увеличить ее. Может ли кто-нибудь объяснить, как я могу это сделать? Я пробовал следующий код:re-size JTable при использовании модели таблицы по умолчанию

TableColumnModel colsize = t1.getColumnModel(); 

for(int i=0; i<cols; i++){ 

    colsize.getColumn(i).setPreferredWidth(200); 
} 

но это не сработало.

+0

Вы хотите сделать JTable больше или изменить ширину столбца? – Smit

+0

@smit столбец в основном, но я считаю, что столбец не переустанавливается из-за размера таблицы, поскольку в представлении я могу изменить размер cloumn, но при этом сделать один столбец большим результатом, чтобы следующий столбец был мал, чтобы соответствовать одному и тому же границы таблицы. Поэтому мне нужно сделать JTable больше – Sarah

ответ

2

размер вверх в table#setPreferredSize().

table.setPreferredSize(new Dimension(500, 500)); 

размер вверх колонны table#getColumn().

table.getColumn(columnNames[0]).setPreferredWidth(100); 
table.getColumn(columnNames[1]).setPreferredWidth(400); 

Я надеюсь, что это поможет решить проблему. Если у вас возникла какая-либо проблема при ее реализации, просто спросите.

+0

благодаря этой помощи. Есть ли способ setPerferredWidth(), основанный на длине значения в этом столбце – Sarah

+0

Вы должны поместить значение int, чтобы указать ширину. Таким образом, вы можете вычислить эту часть ширины, и вы можете установить это расчетное значение. – Smit

2

Использование setPreferredSize() является problematic. Поскольку JTable реализует Scrollable, переопределение getPreferredScrollableViewportSize() для возврата кратного getRowHeight() может быть лучшим подходом.