JTable et CellRenderer [Résolu]

asari29 21 Messages postés mercredi 21 novembre 2007Date d'inscription 18 décembre 2009 Dernière intervention - 12 mai 2009 à 14:57 - Dernière réponse : cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscriptionModérateurStatut 4 mars 2013 Dernière intervention
- 12 mai 2009 à 16:32
Bonjour à tous!

Voilà le contexte: j'essaie de reproduire sur un JTable le fonctionnement de Jtree(je crois... enfin une représentation en arbre ^^). Ne me demandez pas pourquoi, ce n'est pas l'objet de ce post.

Pour ce faire, la première colonne de mon tableau est de type Boolean et reprèsente le petit plus ou le petit moins pour déployer les ligne du tableau ou les cacher (C'est ce comportement qui est comparable à celui d'un arbre).

J'ai donc édité un nouveau cellrenderer pour virer la représentation par défaut du boolean, à savoir, une checkbox pour la remplacer par des images (celles d'un plus et celle d'un moins)

voici le code:

 public class MaskRenderer extends DefaultTableCellRenderer
{
    private ImageIcon plus = new ImageIcon("icons/list-add.png");
    private ImageIcon moins = new ImageIcon("icons/list-remove.png");
   
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column)
    {       
        Boolean bool = (Boolean)value;
        setIcon(bool.booleanValue() ? plus : moins);
        return this;
    }
}

ça fonctionne presque mais j'ai un problème:
Lorsque je click sur mon plus (ou le moins), la checkbox apparait de nous jusqu'a ce que je relache le click.

Il manque manifestement quelque mais quoi?
Peut être qu'il me faut aussi toucher au cellEditor, chose que je n'est pas faite.
Une Idée???
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscriptionModérateurStatut 4 mars 2013 Dernière intervention - 12 mai 2009 à 16:32
3
Merci
Salut,

C'est cà : le cellRenderer sert à formater l'afficher des données, par contre, dès que la cellule est en mode édition (lors d'un clic par exemple), c'est le cellEditor qui est affiché !

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS

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.