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

Composants Java Discussion :

Regenerer un panel suivant la selection d un node de JTree [Débutant(e)]


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut Regenerer un panel suivant la selection d un node de JTree
    bonjour mon probleme est le suivant :

    j ai un frame qui se decompose en deux parties :

    la premiere est la partie reservée à un JTree et la deuxieme doit etre un Jpane qui afficher des informations : ces infos sont relatives à la selection de chaque feuille de l arbre.

    sauf que je bloque sur la methode de selction des noeuds de l arbre qui elle retourne un Void
    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
     
     
     
       tree.addTreeSelectionListener(new TreeSelectionListener(){
     
     
            	public void valueChanged(TreeSelectionEvent e) {
    		        DefaultMutableTreeNode node = (DefaultMutableTreeNode)
                    								tree.getLastSelectedPathComponent();
     
    	if (node == null) {
    	System.out.println("node == null");
                 return;
    				}
     
    	Object nodeInfo = node.getUserObject();
     
    	if (node.isLeaf()) {
    	BookInfo book = (BookInfo)nodeInfo;
    	f (node.toString()== leafProvDisc){
     
    	System.out.println(leafProvDisc);
                 testURL = TreeDemo.class.getResource("tesProviderDisc.txt");;
    	displayURL(book.fichierURL);
                 return;
    	}
                else
                  System.out.println("Autre");
    	 displayURL(book.fichierURL);
     
    	} 
                      else {
    	System.out.println("texte (not leaf) : "+node.toString());
     
    	return;}
                   }
    	});
    j ai essayé de faire une methode qui retourne un JeditorPane et qui conditionne ce qu il va contienir à la selection de la feuille..sauf que je bloque sur la methode de selction. je sais pas comment faire voici le code :

    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
     
    private JPanel buildContentPane(){
     
      DefaultMutableTreeNode node = (DefaultMutableTreeNode)
      tree.getLastSelectedPathComponent();
      JPanel saisiePane = new JPanel();
      saisiePane.setLayout(new FlowLayout());	// saisiePane c est le pane que je voudrai rendre reactif
     
            	JLabel textFieldLabel = new JLabel(textFieldString + ": "); 
            	textFieldLabel.setLabelFor(textField);
            	//saisiePane.add(textFieldLabel);
            	//textField = new JTextField("TESTEUR");
                 //saisiePane.add(textField);
        	//textField.setActionCommand(textFieldString);
     
        		if (node == null) {
    				System.out.println("node == null");
    				return saisiePane;
    			}
     
     
        		Object nodeInfo = node.getUserObject();
     
    			if (node.isLeaf()) {
    				BookInfo book = (BookInfo)nodeInfo;
    				if (node.toString()== leafProvDisc){
     
     
    		        textFieldLabel.setLabelFor(textField);
    		        saisiePane.add(textFieldLabel);
     
     
    		textField = new JTextField("TESTEUR");
    		saisiePane.add(textField);
    		textField.setActionCommand(textFieldString);
    		System.out.println(leafProvDisc);
    		return saisiePane;}
     
                    else {
    	   textField = new JTextField("L AUTRE");
    	   saisiePane.add(textField);
    	    textField.setActionCommand(textFieldString);
    	System.out.println("Autre");}}
     
               else {System.out.println("texte (not leaf) : "+node.toString());
                       return saisiePane;
                      }
     
    return saisiePane;}
    merci de votre aide

  2. #2
    Membre confirmé

    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Par défaut
    salut
    pouvez vous donné le code de construction de l'arbre?, est vous sûr que "BookInfo" correspond à chaque feuille dans l'arbre?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    Citation Envoyé par sofiane44 Voir le message
    salut
    pouvez vous donné le code de construction de l'arbre?, est vous sûr que "BookInfo" correspond à chaque feuille dans l'arbre?
    bjr merci de votre réponse voici le code de la fonction BookInfo :

    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
    private class BookInfo {
            public String bookFLUTE;
            public URL fichierURL;
     
            public BookInfo(String book, String filename) {
                bookFLUTE = book;
                fichierURL = getClass().getResource(filename);
                if (fichierURL == null) {
                    System.err.println("Couldn't find file: "
                                       + filename);
                }
            }
     
            public String toString() {
                return bookFLUTE;
            }
        }
    et celui de la construction de l arbre :
    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
    private void createNodes(DefaultMutableTreeNode top) {
            DefaultMutableTreeNode category = null;
            DefaultMutableTreeNode book = null;
     
            category = new DefaultMutableTreeNode(nodeESGbootsrap);
            top.add(category);
     
     
            book = new DefaultMutableTreeNode(new BookInfo
                (leafProvDisc,"tesProviderDisc.txt"));
            category.add(book);
     
     
     
     
     
            book = new DefaultMutableTreeNode(new BookInfo
                (leafAccDesc,"Access"));
            category.add(book);
     
            category = new DefaultMutableTreeNode(nodeESGAnnoucement);
            top.add(category);
     
     
            book = new DefaultMutableTreeNode(new BookInfo
                ("Init Message",
                 "init.xml"));
            category.add(book);
     
     
            book = new DefaultMutableTreeNode(new BookInfo
                ("Partition Declaration",
                 "partition"));
            category.add(book);
            return;
        }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    c'est bon problème résolu..

    en fait je manquais d organisation dans mon code

    j ai généré les differents pane et ensuite j ai utlisé les propriétés setVisible.

    merci encore

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

Discussions similaires

  1. update Panel suivant une action listener
    Par siwar_j dans le forum Débuter
    Réponses: 2
    Dernier message: 24/07/2009, 23h24
  2. <select> qui affiche des input different suivant la selection
    Par cirvent dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/10/2008, 18h52
  3. Url de page suivant choix selection
    Par masseur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/02/2008, 14h26
  4. update d'une table suivant un select d'une autre table
    Par cortex024 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/03/2007, 12h38
  5. Réponses: 7
    Dernier message: 17/05/2006, 14h49

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