Мы делаем это на многих наших столах здесь.
Сначала мы убедимся, что пользователь не видит, что мы делаем.
table.setRedraw( false );
Затем мы удаляем все столбцы.
while ( table.getColumnCount() > 0 ) {
table.getColumns()[ 0 ].dispose();
}
А потом мы добавляем нужные.
ArrayList<Column> columns = getShownColumns();
for ( Column column : columns ) {
TableColumn tableColumn = new TableColumn( table, column.getStyle() );
tableColumn.setText( column.getTitle() );
tableColumn.setWidth( column.getWidth() );
}
И, наконец, мы позволяем пользователю увидеть, что мы сделали.
table.setRedraw( true );