From: Ogé Nathalie <Nathalie.Oge@ouest-france.fr>
To: java@u-strasbg.fr
Subject: JTree avec noeuds invisibles?
Date sent: Thu, 24 Feb 2000 17:42:55 +0100
Send reply to: java@u-strasbg.fr
Bonjour,
Existe t-il un JTree qui permettrait de masquer certains noeuds à
l'affichage ?
Merci
Date sent: Thu, 24 Feb 2000 18:04:25 +0100
From: wmatter <wmatter@nagora.com>
Send reply to: wmatter@calva.net
Organization: Nagora Communication
To: java@u-strasbg.fr
Subject: Re: JTree avec noeuds invisibles?
> Existe t-il un JTree qui permettrait de masquer certains noeuds à
> l'affichage ?
Aussi simple qu'implémenter le treecellrenderer :
tu décides de ne rien afficher,
de mettre une icone "blank" etc etc
Je l'ai fait, ca marche.
willfried
Date sent: Fri, 25 Feb 2000 09:53:08 +0100
From: wmatter <wmatter@nagora.com>
Send reply to: wmatter@calva.net
Organization: Nagora Communication
To: Adam Benoît <benoit.adam@ouest-france.fr>,
"java@u-strasbg.fr" <java@u-strasbg.fr>
Subject: Re: JTree avec noeuds invisibles
> >Aussi simple qu'implémenter le treecellrenderer :
> >tu décides de ne rien afficher,
> >de mettre une icone "blank" etc etc
> >Je l'ai fait, ca marche.
> On a deja utilise les TreeCellRenderer et en particulier
> les DefaultTreeCellRenderer. Ce que je ne comprends pas
> dans ce que tu dis c'est que si tu mets une icone "blank"
> effectivement tu ne vas rien voir mais tu vas avoir une "ligne blanche"
> dans l'arbre non ? Mais j'aimerai vraiment ne rien avoir. Alors j'ai
> deja reflechi au fait de redefinir chidren() ...mais je me demandais si
> tu avais plus simple ... Ta solution est peut etre bonne quand meme,
> j'attends tes explications ...
J'ai déja implémenté des renderer de noeud d'arbre du style :
public class TreeMultiLineCellRenderer extends JPanel implements
TreeCellRenderer
- affichage de texte sur plusieurs lignes
- variation de la couleur du texte
- non affichage de texte
- changement de l'icone
Une icone "blank", c'est pour moi une icone neutre ou blanche.
Par contre le noeud existe,
tu le masques ou le neutralises,
mais il a sa place dans l'arbre entre son pére et ses fils.
Et tu veux "éliminer" le noeud de la structure
Pour ne rien avoir :
- tu computes le oldModel original de ton tree
pour éliminer les noeuds "inutiles"
tu obtiens un newModel
- tu recharges le nouveau model dans le tree
ca pourrait donner
tree.setModel(newModel);
((DefaultTreeModel)tree.getModel()).reload();
willfried Matter
>