Bonjour,
Après avoir galérer longtemps pour rendre mes colonnes invisibles-visibles dans mes JTable, je viens enfin de trouver un petit Tips pour ne pas avoir à générer votre propre TableModel qui devra gérer le fait d'acceder aux données cachés etc...
Après avoir essayer mainte fois de rendre la largeur de colonne à 0, il restait toujours le header de la colonne qui apparaissait (réduit mais qui apparaissait quand même). Je ne sais pas pourquoi, car je ne suis pas un dieu en java et trés loin de là (c'est mon premier code que je mets en ligne), mais il faut mettre l'affectation de la taille dans un certain ordre pour que cela fonctionne. (Je précise que je travail sous JRE 1.4.1_01)
Voici l'ordre :
getColumn(pColumn).setPreferredWidth(0);
getColumn(pColumn).setMinWidth(0);
getColumn(pColumn).setMaxWidth(0);
Ordre qui marche pas chez moi :
getColumn(pColumn).setMinWidth(0);
getColumn(pColumn).setPreferredWidth(0);
getColumn(pColumn).setMaxWidth(0);
ou
getColumn(pColumn).setMaxWidth(0);
getColumn(pColumn).setMinWidth(0);
getColumn(pColumn).setPreferredWidth(0);
etc..
Et voici un exemple de DefaultTableColumnModel, dans le fichier zip, qui permet de rendre visible ou invisible une colonne. On doit passer en paramètre un vecteur contenant le nom des colonnes, et un autre vecteur contenant la taille (largeur) de chaque colonnes. Les deux vecteurs doivent donc comprendre le même nombre d'éléments et non null (car pas de test).
Il suffit ensuite d'utiliser la fonction setColumnVisible(), ou l'on passe en paramètre un boolean pour demander de rendre visible ou nom la colone et l'index de celle-ci.
En esperant pouvoir aider certains d'entre vous.
A+
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.