IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

[DefaultMutableTreeNode] Problème avec removeFromParent()


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 60
    Points
    60
    Par défaut [DefaultMutableTreeNode] Problème avec removeFromParent()
    Bonjour à tous,
    Après avoir créer un arbre avec la classe DefaultMutableTreeNode. J'instancie cet arbre avec des paires d'élément que je nomme Pair(String element, boolean b). Le code qui suit est l'instanciation de l'arbre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    tree1 = new DefaultMutableTreeNode("1");
    		DefaultMutableTreeNode tree2t = new DefaultMutableTreeNode(new FT_Pair("2", true));
    		DefaultMutableTreeNode tree3t = new DefaultMutableTreeNode(new FT_Pair("3", true));
    		DefaultMutableTreeNode tree4t = new DefaultMutableTreeNode(new FT_Pair("4", true));
    		DefaultMutableTreeNode tree5t = new DefaultMutableTreeNode(new FT_Pair("5", true));
    		DefaultMutableTreeNode tree6ta = new DefaultMutableTreeNode(new FT_Pair("6", true));
    		DefaultMutableTreeNode tree6tb = new DefaultMutableTreeNode(new FT_Pair("6", true));
    		DefaultMutableTreeNode tree6tc = new DefaultMutableTreeNode(new FT_Pair("6", true));
    		DefaultMutableTreeNode tree6td = new DefaultMutableTreeNode(new FT_Pair("6", true));
    		DefaultMutableTreeNode tree7t = new DefaultMutableTreeNode(new FT_Pair("7", true));
    L'arbre ressemble donc a:
    1
    |--2,true
    | |--4,true
    | | |--6,true
    | |
    | |--5,true
    |
    |--6, true
    |
    |--3,true
    |--7,true
    | |--6,true
    |
    |--6,true

    Ensuite j'aimerai effacer tous les éléments contenant 6 comme premier élément dans l'arbre.Donc je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Enumeration enumerationOnTree = tree1.depthFirstEnumeration();
        	while(enumerationOnTree.hasMoreElements()) {
     
        		DefaultMutableTreeNode element = (DefaultMutableTreeNode)enumerationOnTree.nextElement();
     
     
        		if(element.getUserObject().getClass().toString().equals("class FT_Pair")){
     
     
            		if(((FT_Pair)element.getUserObject()).ft_getFirst().toString().compareTo("6") == 0){
            			element.removeFromParent();
     
            		}
        		}
        	}
    Cependant le removeFromParent ne m'efface que deux élements sur les quatres.
    Pourtant si je lui demande simplement de m'afficher les éléments qu'il rencontre (sans le removeFromParent), il m'affiche bien les quatres éléments.

    Que se passe t-il avec removeFromElement?
    Avez-vous une idéee?

    Merci
    Birds of a feather flock together

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Un petit coup d'oeil à la javadoc et tu as la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Creates and returns an enumeration that traverses
    the subtree rooted at this node in depth-first order.
    The first node returned by the enumeration's nextElement()
    method is the leftmost leaf. This is the same as a postorder traversal.
    Modifying the tree by inserting, removing, or moving a node
    invalidates any enumerations created before the modification.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Mais alors comment faire?
    J'aimerai parcourir mon arbre et éffacer les éléments lorsque ceux ci ne rencontrent pas les propriétés spécifiés.
    Même en construisant mon énumération avec "children", je n'obtiens pas ce que je veux.
    Birds of a feather flock together

  4. #4
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    En deux passes : dans le parcours de l'énumération, tu insères dans une liste les éléments à effacer. Ensuite tu parcours ta liste pour faire le removeFromParent() sur chacun des éléments.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 60
    Points
    60
    Par défaut
    Ok, ca marche.
    Merci.
    Birds of a feather flock together

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo