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

AWT/Swing Java Discussion :

sélection dans une arborescence


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut sélection dans une arborescence
    bonjour,

    pour un stage je doit créer un logiciel de gestion de tâche en arborescence en java.

    Mon problème est que je n'arrive pas à gérer les sélections dans l'arbre, c'est à dire que quand on clic sur une feuille précise, je voudrais que ca lance une action.

    Si quelqu'un a une solution, je suis preneur.

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    deja tu peux crée une arbre avec les interface abstraite qui te sont proposer par java

    ensuite tu peux crée manuellement ton arbre avec des fonctions simple et avoir accée facilement

    niveau grafique tu peux essayer de placer un bouton sur une feuille et d'y coller un auditeur d'action pour effectuer l'action souhaiée

    enfin si tu trouve les methodes java trop compliquer je peux t'envoyer un paketage d'une classe abstraite "arbre" qui definie un arbre de maniere simple et en francais !!!! (elle a été implementé par mon professeur)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    alor, pour le paclage ya pa de probleme je suis preneur.

    Par contre, pour l'arbre, le truc c'est que les données peuvent être très aléatoire puisqu'elles sont enregistrées dans un fichier XML donc elles ne sont pas fixe.

    Voila la gros problème...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    des donnée aléatoire c'est sans probleme le seul probleme c'est si tu a accés a chaque donnée que tu veux placer dans la feuille et de quel maniere

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    en fait, je crée un TreePanel, ensuite, j'ai des boutons qui permettent d'ajouter des feuilles ou des noeuds dans l'arbres.

    Ce que je voudrai, c'est quand je clique sur une feuille ou sur un noeud, qu'il m'affiche le nom de celui-ci dans un TextField

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    d'accord alors au moment ou tu ajoute ce que tu veux dans le noaud tu le stock dans une variable de boucle

    ensuite avec un tu colle un auditeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    feuille1.addActionListener(JTree);
    a ce moment soit tu redefinie une classe d'action qui va repondre a cette audition (attention tu ne pourra definir qu'une action precise mais dans ce cas c'est ce qu'il te faut)

    donc ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class Action extends JTree implements ActionListener{
     
    //redefinition de la methode ActionPerformed
     
    public void ActionPerformed(ActionEvent event,Graphics g){
     
    //definition de l'action a executer
    //si tu affiche ton JTree dans une frame:
    g.DrawString("nom ",x,y);
    }
    }
    $biensur il y a plusieur methode de faire ceci la je t'en propose une si tu veux une autre dans un contexte plus precis dit le moi

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    Merci beaucoup

    Je vais tester ca et je te donne des news...

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    une petite question, la il ne va pas afficher les donner quand on va cliquer sur la feuille, il va les ajouter quand on va les ajouter???

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    n'hesite pas a ajouter un petit bout de ton code pour qu'on s'en rende mieux compte et qu'on puisse mieux t'aider

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    				JTabbedPane tabbedPanel = new JTabbedPane();
    				tabbedPanel.setPreferredSize(new Dimension(600,500));
     
     
     
    				GridLayout arbre = new GridLayout(1,2);
    			    treePanel.setLayout(arbre);
    			    treePanel.applyComponentOrientation( ComponentOrientation.LEFT_TO_RIGHT);
     
    				tabbedPanel.add(treePanel);
    				gauche.add(tabbedPanel);
    Ici j'ai mon treePanel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    				String lib = new String("Saisie prix");
    				TextField lib1 = new TextField(lib, 2);
    				lib = " !!!!!!!!!!!!!!!!!! ";
    				lib1.setText(lib);
    				lib1.setPreferredSize(new Dimension(50,30));
    				panel1.add(lib1);
    Ici le code qui créer mes TextFields dans lequel je voudrais afficher les informations

    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
     
    public void enregistre(String fichier)
     
        {
        	int i;
     
     
        	 Element racine = new Element(treePanel.treeModel.getRoot().toString());
        	 // On crée un nouveau Document JDOM basé sur la racine que l'on vient de créer //
             org.jdom.Document document = new Document(racine);
     
     
     
             Element libelle = new Element("Libelle");
             libelle.setText(treePanel.rootNode.getFirstChild().toString());
             racine.addContent(libelle);
     
     
             Element contenu = new Element("Contenu");
             contenu.setText("test");
             racine.addContent(contenu);
     
     
             for (i=0; i< treePanel.rootNode.getChildCount(); ++i);
     
             { 
     
     
            	 Element libelle1 = new Element ("libellé" + i);
            	 libelle1.setText(treePanel.rootNode.getChildAt(1).toString());
            	racine.addContent(libelle1);
     
            		if (treePanel.rootNode.getChildAt(1).isLeaf());
            		Element fils = new Element ("fils" + i);
            		fils.setText(treePanel.rootNode.getFirstChild().toString());
            		libelle.addContent(fils);
     
     
     
             	 Element libelle2 = new Element ("libelle" + i);
            	 libelle2.setText(treePanel.rootNode.getChildAt(2).toString());
            	 racine.addContent(libelle2);
     
             }
     
           try
           {
              // On utilise ici un affichage classique avec getPrettyFormat() //
              XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
              // Remarquez qu'il suffit simplement de créer une instance de FileOutputStream //
              // avec en argument le nom du fichier pour effectuer la sérialisation. //
              sortie.output(document, new FileOutputStream(fichier));
           }
           catch (java.io.IOException e){}
        }
    Et la c'est le code qui enregistre les informations dans le fichier XML.

    L'endroit ou il y a des "!" en gras, je pense que c'est ici qu'il faut mettre le code pour qu'il affiche les valeurs mais je ne sait pas quoi mettre.

    Dsl si je ne suis pa doué, je débute...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    quand tu va cliquer il va t'afficher "nom" et cet espace est un espace String donc tu peux le modifier

    si comme tu dit les donner son aleatoire tu peux crée une variable "public" et faire que la class action extends de ta classe qui crée larbre ensuite tu recupere ton string et tu le place a la place de nom

    autre methode : tu peux te debrouiller a recuperer le contenu de ce que tu veux afficher et le placer dans nom exemple:

    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
     
    //1ere classe
     
    ....
    //code qui ajoute les nom des feuilles
    ...
     
    //methode qui recupere les String aleatoires
     
    public String recuperFeuille(feuille f){
    //biensur ici je le fait rapidement mais c'ets pas la feuille que tu va retourner mais le String associer cela depend comment tu fait ton code
    return feuille f;
    }
    }
     
     
    //ensuite dans la methode ActionPerformed tu met ceci:
    feuille f;
    //creation de l'instance de ta premiere classe
    class1 c=new classe1();
    g.DrawString(c.recuperFeuille(f),x,y);
    voila!!

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    ok, je vais essayer de me débrouiller avec ca, merci beaucoup

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Par défaut
    bon courage

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    Bonjour,
    dsl de remettre ca sur le tapis, mais j'ai toujours le meme problème pour sélectionner dans mon arborescence.

    Quelqu'un aurait t'il un code "simple" pour sélectionner le nom d'une feuille dans un tree pour l'affiche dans un TextFields svp ????????

    Merci beaucoup d'avance

Discussions similaires

  1. Repérer un dossier dans une arborescence
    Par Feustine dans le forum Langage
    Réponses: 2
    Dernier message: 11/08/2005, 13h54
  2. Sélection dans une ListBox
    Par LoicH dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/04/2005, 22h13
  3. Pb d'Ajout un noeud fils dans une arborescence
    Par oramine dans le forum Oracle
    Réponses: 5
    Dernier message: 21/12/2004, 15h39
  4. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 11h43
  5. Suppression d'item dans une arborescence
    Par jonzuzu dans le forum MFC
    Réponses: 2
    Dernier message: 24/02/2004, 17h45

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