JTable скрыть и показать столбцы

Я хочу добавить несколько столбцов в таблицу (Swing JTable). Некоторые из них будут иметь размер по умолчанию (например, 250), другие будут скрыты (поэтому их размер будет равен 0). Я использую этот код:

 model = new DefaultTableModel();
 table = new JTable(model);
 setAutoResizeMode(AUTO_RESIZE_OFF);
 for (int i = 1; i < COLUMN_NAMES.length; i++) {
    model.addColumn(COLUMN_NAMES[i]);
    if (show[i]) show(index);
    else hide(index);
 }
 ........

 private void hide(int index) {
    TableColumn column = getColumnModel().getColumn(index);
    column.setMinWidth(0);
    column.setMaxWidth(0);
    column.setWidth(0);
    column.setPreferredWidth(0);
    doLayout();
}

private void show(int index) {
    final int width = 250;
    column.setMinWidth(15);
    column.setMaxWidth(width);
    column.setWidth(width);
    column.setPreferredWidth(width);
    doLayout();
}

проблема в том, что когда таблица отображается, отображаются все столбцы (ни один не скрыт) и их размер не 250, но все они имеют одинаковый размер.

Как я могу получить желаемый эффект?

12
задан Randomize 4 December 2011 в 10:51
поделиться