8
votes

Comment créer une colonne JTable contient des cases à cocher?

Préface: Je suis horrible avec Java et pire avec les composants de l'interface utilisateur Java.

J'ai trouvé plusieurs tutoriels différents sur la façon d'ajouter des boutons aux tables, mais je me débats avec l'ajout de cases à cocher. Je dois avoir une colonne qui dessine une zone de texte cochée par défaut (Renderer cellulaire que je pense que des gicers), puis en cliquant sur le clic de la boîte de ticket, décochez la boîte de la boîte, redessinant la boîte et incendie un événement quelque part que je peux suivre.

Actuellement, j'ai un cellulaire personnalisé: xxx

qui traite actuellement la boîte de coche, mais ne tire que la case si cette ligne est sélectionnée. Mais je ne sais pas comment gérer les événements. Vraiment ce que je demande, c'est peut-être un lien vers un bon tutoriel sur la manière d'ajouter des cases à cocher à proprier à une jtalie. Toute aide est grandement appréciée :)


0 commentaires

5 Réponses :


4
votes

Voici une Simple plutôt élaborée Exemple en utilisant un NappellRenderer et TAPPELLEDITOR . Voir aussi, Concepts: Editors et Renderers < / em> .

addendum: @jay Askren's Point est bien pris. Le rendu par défaut pour boolean.class , comme décrit dans le didacticiel, peut être tout ce dont vous avez besoin.


1 commentaires

Merci. Je n'avais pas rencontré cet exemple particulier. Tellement de choses se passent ... je vais lui donner une fissure



25
votes

Il n'y a pas besoin de créer votre propre rendu de table. Voici un exemple plus simple . Il suffit de créer un modèle de table personnalisé et pour une colonne donnée, la classe booléenne pour: xxx pré>

Si vous souhaitez que la colonne soit modifiable, retournez true pour P>

public boolean isCellEditable(int row, int column)


2 commentaires

+1 bon point; plus simple peut suffire. Le didacticiel décrit plusieurs rendriers par défaut pour des classes spécifiques.


Accepté. Merci beaucoup pour les liens, ils sont assez simples pour que je puisse suivre / intégrer mon projet actuel



3
votes

La solution la plus simple consiste à utiliser la valeur par défautTableModel et à utiliser un objet booléen comme des valeurs.


1 commentaires

Ouais, c'est vrai @Peter, mais pourrions-nous améliorer davantage en ajoutant une certaine valeur (ID) à cette case à la case si nous voulons que la valeur réelle devienne une valeur d'identification et une fausse valeur de valeur toujours fausse?



6
votes

Comme Peter Say, c'est facile en utilisant une classe de valeur étendueTableModel, ex: xxx


0 commentaires

-5
votes

Dans le type de colonne Swing Designer Set sur Boolean


1 commentaires

Cette solution suppose que l'OP utilise un constructeur d'interface utilisateur d'un type