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 :

probleme de noeud expose


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 77
    Points : 67
    Points
    67
    Par défaut probleme de noeud expose
    salut,

    j'ai une arbre de JCheckox comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        racine
           |_____ fils1
           |           |_____ feuille1
           |           |_____ feuille2
           |_____ fils2                       
                         feuille1
                         feuille2
    le probleme que je veux ajouter une action pour chaque fils i , cette action
    permet de mettre en couleur rouge le fils si:
    * le noeud de fils i est non expose et
    * l'un de ces fils (les feuilles i) est selectionnes.

    en fait, juste pour que l'utilisateur puisse savoir que l'un au moins des feuille i est selectinnes meme si le noeud fils est non expose;

    alors voici qu'est ce que j'ai fait:

    1 - je test si le noeud est expose ou non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public boolean isVisible(TreePath path) {
            if(path != null) {
                TreePath  parentPath = path.getParentPath();
     
                if(parentPath != null)
                    return isExpanded(parentPath);
                // Root.
                return true;
               }
            return false;
        }
    2- je test si l'un des fils est selectionne

    je veux savoir comment affecter cette evenement à chaque fils ;;

    merci d'avance!!!

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 77
    Points : 67
    Points
    67
    Par défaut resolu
    j'ai trouve la solution ,,, ce code fonctionne parfaitement;;;
    si vous avez des commentaires,, n'hesiter pas de m'envoyer

    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
    17
    18
     
    private void Mon_arbreTreeCollapsed(javax.swing.event.TreeExpansionEvent evt) {                                        
    // TODO add your handling code here:
     
            ArrayList list = new ArrayList();
            RuleTree t= new RuleTree(T.rootNode);
            list =  t.getState();
            try{
                for(int i=0;i<list.size();i++){
     
                    objet_rac_fils ob =(objet_rac_fils)list.get(i);
                    JCheckBox rac = (JCheckBox) ob.noeud;
                    JCheckBox fil = (JCheckBox) ob.fils;
                    if (fil.isSelected() && rac.isSelected()==false && rac.getText().equals("text de checkBox de racine")==false)
                        rac.setForeground(new Color(255,0,0));
                    fil.setForeground(new Color(0,0,0));
                }
            }catch(Exception r){r.printStackTrace();}
    Avec : la classe Rule est comme suit:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
     
    import java.util.ArrayList;
    import java.util.Enumeration;
    import javax.swing.JCheckBox;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.TreeNode;
    import javax.swing.tree.TreePath;
     
    class RuleTree extends JTree
     
    {   //Tree t;
        objet_rac_fils ob=null;
        public RuleTree() {}
        public RuleTree(TreeNode root) {
            super(root);
            // TODO Auto-generated constructor stub
        }
     
        static ArrayList list;
     
        public ArrayList getState() {
            ArrayList list = new ArrayList();
     
            for (int i = 0; i < getRowCount(); i++) {
     
                TreePath o=getPathForRow(i);
     
                DefaultMutableTreeNode noeud=((DefaultMutableTreeNode)o.getLastPathComponent());
     
                //  i eme racine
                Object p = noeud.getUserObject();
     
                int count = noeud.getChildCount();
                // if (count == 0) list.add(new objet_rac_fils(p,null));
                if (count != 0) {
                    // diferents fils de cette i eme raine
                    Enumeration en = noeud.children();
                    while (en.hasMoreElements()) {
                        DefaultMutableTreeNode node = (DefaultMutableTreeNode)en.nextElement();
                        if ( node.children() != null){
                            ob = new objet_rac_fils(p,node.getUserObject());
                            list.add(ob);
                        }
                    }
                }
     
            }
     
     
            list = new ArrayList(list);
            return list;
        }
    }

    et voici la classe "objet_rac_fils"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class objet_rac_fils {
     
        /** Creates a new instance of objet_rac_fils */
     
        public Object noeud=null;
        public Object fils = null;
     
        public objet_rac_fils(Object noeud,Object fils) {
            this.fils = fils;
            this.noeud= noeud;
        }
     
    }

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

Discussions similaires

  1. probleme acces noeud xml
    Par G4uthier dans le forum Flex
    Réponses: 2
    Dernier message: 07/08/2009, 17h35
  2. Jxta probleme communication noeuds
    Par snight dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 24/11/2008, 10h19
  3. [JTree] Probleme création noeud
    Par tittoto dans le forum Composants
    Réponses: 8
    Dernier message: 02/04/2007, 15h26
  4. [XPath] probleme selection noeud
    Par guiguipumpkin dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 15/03/2007, 16h42
  5. probleme avec les exposions et transparence ?
    Par ilimo dans le forum DirectX
    Réponses: 11
    Dernier message: 29/05/2004, 00h24

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