JTable masquer et afficher des colonnes

Je veux ajouter des colonnes à une table (Swing JTable). Certains d'entre eux ont une taille par défaut (par exemple, 250), d'autres seront cachés (de sorte que leur taille sera de 0). J'utilise ce code:

 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();
}

le problème, c'est quand le tableau est affiché, toutes les colonnes sont montré (aucun n'est caché) et leur taille n'est pas 250 mais ils ont tous la même taille.

Comment puis-je obtenir l'effet recherché?

Veuillez consulter le Swing-génie StanislavL de réponse ici: hide-column-in-jtable-temporary
lien sympa 🙂 +1

OriginalL'auteur Randomize | 2011-12-03