2010-01-08 5 views
1

J'ai un JTable où la première colonne de chaque rangée est une case à cocher. L'utilisateur peut sélectionner et désélectionner des colonnes individuelles. J'ai ce travail.Puis-je ajouter un bouton à un en-tête de colonne JTable?

Maintenant, je voudrais ajouter à l'en-tête de colonne une case à cocher qui peut être utilisée pour "sélectionner tout" et "désélectionner tout". Je suis perplexe dans la façon dont je devrais aller faire ça. Je ne peux pas trouver comment placer un composant de mon choix dans un en-tête de colonne spécifique.

Que pouvez-vous suggérer?

Répondre

4

Here est un exemple où quelqu'un voulait faire la même chose. composante

0

Bien sûr, vous pouvez!

Obtenez le tableheader par header = table.getTableHeader(). Cela renvoie un composant. Vous pouvez ajouter d'autres composants tels que des boutons, etc., par header.add(btn).

[Modifier] Avant d'ajouter le bouton, vous devez définir la mise en page:

header.setLayout(new BorderLayout()); //if u need someother layout you can set 

Ceci est parce que par defualt la mise en page de l'en-tête est nulle.

+0

Ce n'est pas aussi simple que cela, parce que quand ce composant se peint, il ne sera plus un « actif » (c'est-à-dire que vous ne pouvez pas cliquer dessus). Vous devez créer du code pour capturer le point du clic et le transmettre aux écouteurs d'action de la case à cocher. Voir le poste (et l'exemple via le lien) par Mark – Timothy

+0

@timmyd ... pas besoin d'un tel code complexe, il est inutile. J'ai essayé avec mon code dans ma réponse ci-dessus avec Jcheckbox cela fonctionne parfaitement bien. Veuillez vérifier et supprimer le vote négatif. –

Questions connexes