cs_cbil
Messages postés140Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention15 mai 2008
-
2 juin 2006 à 18:19
cs_cbil
Messages postés140Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention15 mai 2008
-
5 juin 2006 à 14:48
Salut tout le monde !
J'ai un soucis avec mon JTree, le addTreeSelectionListener ne fonctionne pas
voici ce que j'ai dans ma classe :
public class PanelPrecisionTree extends JPanel implements TreeSelectionListener
{
......
private JTree getArbreDTD() {
if (arbreDTD == null) {
arbreDTD = new JTree();
DefaultTreeSelectionModel modelSelection = new DefaultTreeSelectionModel();
modelSelection.setSelectionMode(DefaultTreeSelectionModel.SINGLE_TREE_SELECTION);
arbreDTD.setSelectionModel(modelSelection);
arbreDTD.addTreeSelectionListener(this);
}else{
System.out.println("--------> Selection Tree : "+selection.getNom()+" <----------");
}
}
Le JTree est bien affiché mais j'ai beau selectionné n'importe quel noeud, element, le system.out.println n'est pas affiché. En passant, le model de selection ne fonctionne pas non plus, malgre le SINGLE_TREE_SELECTION, je peux toujours selectionne plusieurs noeud.
Merci a+, ca doit etre tout bete, mais j'ai pas trouvé, je trouverais j'espere lundi ^^
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 2 juin 2006 à 19:48
Salut,
dans ton code tu fais
DefaultTreeSelectionModel modelSelection = new DefaultTreeSelectionModel();
modelSelection.setSelectionMode(DefaultTreeSelectionModel.SINGLE_TREE_SELECTION);
pourquoi ne pas faire simplement
arbreDTD.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
pourquoi aussi ne pas modifier que le model genre
private DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode();
....
DefaultTreeModel treeModel = new DefaultTreeModel(rootNode);
treeModel.addTreeModelListener(new TreeModelEvent(this));//pas obligatoire
arbreDTD = new JTree(treeModel);
ensuite tu fais
if (arbreDTD == null) {
...
}else{
gestionDTDOrganisation = new GestionInterfaceXML(nomProjet,nomFichierXML,lienDTD);
arbreDTD.removeAll();
arbreDTD = gestionDTDOrganisation.getArbre();
}
gestionDTDOrganisation.getArbre(); te renvoit la meme config en terme de selection et d'ajout de listener que dans le cas de arbreDTD == null ?
cs_cbil
Messages postés140Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention15 mai 20081 5 juin 2006 à 14:48
Merci pour la réponse.
En fait, c'est la première fois que j'utilisais les arbres et je n'y comprenais rien. En effet pour la selection unique, ta ligne de code est plus simple ^^, merci.
Concernant le reste, j'ai résolu le probleme, en fait, je ne touchais qu'a la racine de l'arbre (car je pensais que ca serais pour ton ces fils également) mais il fallait mettre le code dans la boucle ou je créé chacun de mes noeuds.