Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher un arbre avec NetBeans

    2 janvier 2009 à 11:24:32

    Bonjour,
    Dans le cadre d'un projet que je dois réaliser, j'ai besoin d'afficher un arbre (JTree) dans une fenêtre (JFrame).
    Pour exemple j'ai récupérer le code du tutoriel Java, partie 3, Les arbres...

    Lorsque je créer une classe Java "normal", je n'ai aucun problème.

    Le problème se pose quand je passe par une JFrame Form (editeur d'interface graphique sous Netbeans)

    Il génère du code automatiquement qui fait que mon arbre n'est pas affiché. Il faut surement l'ajouter à un composant créer automatiquement par Netbeans mais je ne sais pas lequel...

    Merci d'avance à ceux qui prendrait du tempspour m'aider à identifier le problème.


    Voici le code de ma classe:

    package testpourminiprojet;
    
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeModel;
    
    public class NewJFrame extends javax.swing.JFrame {
        
        private JTree arbre;
    
        public NewJFrame() {
                   initComponents();
                   buildTree(); 
        }
    
        private void buildTree(){
            //Création d'une racine
            DefaultMutableTreeNode racine = new DefaultMutableTreeNode("Racine");
    
            //Nous allons ajouter des branches et des feuilles à notre racine
            for(int i = 1; i < 6; i++){
                    DefaultMutableTreeNode rep = new DefaultMutableTreeNode("Noeud N°"+i);
    
                    //On rajoute 4 branches
                    if(i < 4){	
                            DefaultMutableTreeNode rep2 = new DefaultMutableTreeNode("Fichier enfant");
                            rep.add(rep2);
                    }
                    //On ajoute la feuille ou la branche à la racine
                    racine.add(rep);
            }
            //On crée, avec notre hiérarchie, un arbre
            arbre = new JTree(racine);
    
            //Que nous plaçons sur le ContentPane de notre JFrame à l'aide d'un scroll 
            this.getContentPane().add(new JScrollPane(arbre));
        }
    
    //====================================================================
    
    CODE GENERE PAR NETBEANS
    
    //====================================================================
    
    
        @SuppressWarnings("unchecked")
    
        private void initComponents() {
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(0, 400, Short.MAX_VALUE)
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(0, 300, Short.MAX_VALUE)
            );
    
            pack();
        }// </editor-fold>
    
        /**
        * @param args the command line arguments
        */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NewJFrame().setVisible(true);
                }
            });
        }
    
        // Variables declaration - do not modify
        // End of variables declaration
    
    }
    

    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2009 à 12:04:22

      Bonjour, ton objet étant de type JFrame tu peux faire :
      public NewJFrame() {
                     initComponents();
                     buildTree(); 
      add(arbre);
          }
      

      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2009 à 12:06:44

        Citation : damsdams75

        Bonjour, ton objet étant de type JFrame tu peux faire :

        public NewJFrame() {
                       initComponents();
                       buildTree(); 
        add(arbre);
            }
        




        Je viens d'essayer, mais rien ne s'affiche...
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2009 à 16:04:15

          tu as penser a faire passer ta fenêtre en visible ?
          (a mettre a la suite du code :) )
          this.setVisible(true);
          
          • Partager sur Facebook
          • Partager sur Twitter
            3 janvier 2009 à 10:10:27

            Citation : Snooooopy

            tu as penser a faire passer ta fenêtre en visible ?
            (a mettre a la suite du code :) )

            this.setVisible(true);
            


            Si tu regardes bien le code, le setVisible(true) y est... A la fin dans le main. ;)
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              3 janvier 2009 à 13:30:45

              le problème viens du org.jdesktop.layout.GroupLayout...

              Pourquoi ne pas écrire un code aussi simple toi même ?
              • Partager sur Facebook
              • Partager sur Twitter
                3 janvier 2009 à 14:45:20

                Citation : @Strato@

                le problème viens du org.jdesktop.layout.GroupLayout...

                Pourquoi ne pas écrire un code aussi simple toi même ?



                Parce qu'en écrivant ce code moi-même je perd l'utilité du designer...
                Je perd donc un peu de temps maintenant pour comprendre comment l'utiliser correctement, mais je sais que ça me fera gagner beaucoup de temps plus tard !

                Je vais me renseigner sur l'utilisation de ce GroupLayout, mais si tu saurais m'expliquer simplement comment l'utiliser, tes conseils sont les bienvenues ^^

                En fait mon problème est très bien expliqué dans ce topic:
                http://www.siteduzero.com/forum-83-259 [...] mposants.html

                Donc: comment faire pour bénéficier à la fois des fonctionnalités de l'éditeur de NetBeans tout en ayant la possibilité d'ajouter des composants soit-même par programmation...?????


                Merci d'avance :)
                • Partager sur Facebook
                • Partager sur Twitter

                Afficher un arbre avec NetBeans

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown