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 :

[jTree] (debutant) pb d'affichage


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut [jTree] (debutant) pb d'affichage
    Bonjour,
    J'ai créé un Jtree personnalisé qui est généré lors d'une selection dans un JCombobox. En premier lieu (avant la selection) c'est le jtree d'une classe mere par defaut qui est affiché, et seulemnt apres selection, je veux la mettre à jour par un nouveau jtree qui est fille de cette classe mere (avec une nouvelle racine. mais la mise à jour ne s'effectue pas, je ne comprend pas pourquoi...
    Si quelqu'un voit mon erreur, ca me débloquerait beaucoup, merci d'avance!
    ma classe mère
    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
     
    public class JTreeDefaut extends JTree {
        private static MutableTreeNode root_defaut = new DefaultMutableTreeNode("Consultation détaillée");
        protected DefaultTreeModel model = new DefaultTreeModel(root_defaut);
        /**Panneau d'appel*/
        protected JPanelConsultTree panneauParent;
     
        /**Constructeur,
         * crée un arbre sur un modèle neutre (pas de type d'objet sélectionné).
         * @param panneau
         *      Panneau stockant le Tree
         */
        public JTreeDefaut(JPanelConsultTree panneau) {
            try {
                panneauParent = panneau;
                jbInit();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     
        private void jbInit() throws Exception {
            this.setModel(model);
            this.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
            this.setRootVisible(true);
            this.setVisible(true);
     
            //place la racine par defaut
            model.setRoot(root_defaut);
            model.reload();
        }
    }
    ma classe fille
    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
     
    public class JTreeTemoin extends JTreeDefaut{
        private MutableTreeNode racine_temoin = new DefaultMutableTreeNode("Racine Témoins");
        //noeuds statiques
        private MutableTreeNode TN_nominatifs = new DefaultMutableTreeNode("Par nominatif");
        private MutableTreeNode TN_temoignages = new DefaultMutableTreeNode("Par participation à un témoignage");
        private MutableTreeNode TN_nom = new DefaultMutableTreeNode("Nom");
        private MutableTreeNode TN_prenom = new DefaultMutableTreeNode("Prénom");
        private MutableTreeNode TN_dpts_temoignes = new DefaultMutableTreeNode("Départements");
        private MutableTreeNode TN_enqueteur = new DefaultMutableTreeNode("Enqueteurs");
        private MutableTreeNode TN_enquete = new DefaultMutableTreeNode("Enquetes"); 
     
        public JTreeTemoin(JPanelConsultTree panneau) {
            super(panneau);
            try {
                model.setRoot(racine_temoin);
                model.reload();
                this.setModel(model);
                this.repaint();
                this.addMouseListener(new MouseAdapter() {
                            public void mousePressed(MouseEvent e) {
                                this_mousePressed(e);
                            }
                        });
                TreeCellRenderer cellRenderer = getCellRenderer();
                if (cellRenderer instanceof DefaultTreeCellRenderer) {  
                    DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)cellRenderer; 
                    renderer.setLeafIcon(GestionImages.ico_tree_temoin);
                }
                //creerRacine();
                //remplirDonneesStatiques();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        private void creerRacine(){
            MutableTreeNode racine_temp = new DefaultMutableTreeNode();
            //titres
            racine_temp.insert(TN_nominatifs, 0);
            racine_temp.insert(TN_temoignages, 1);
            //liste des nominatifs
            TN_nominatifs.insert(TN_nom, 0);
            TN_nominatifs.insert(TN_prenom, 1);
            //liste des temoignages
            TN_temoignages.insert(TN_dpts_temoignes, 0);
            TN_temoignages.insert(TN_enqueteur, 1);
            TN_temoignages.insert(TN_enquete, 2);
     
            racine_temoin = racine_temp;
            model.setRoot(racine_temoin);
            model.reload();
        }
    }
    son appel
    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
     
    public class JPanelConsultTree extends JPanel{
        private JLabel Lab_objet = new JLabel("Objet recherché");
        private JComboBox CB_objet = new JComboBox(Enumerations.enum_objet_consultable);
        protected JTreeDefaut Tree = new JTreeDefaut(this);
        private JScrollPane scroll = new JScrollPane(Tree);
     
    ...
     
    //fonction appellée lors de la selection
        protected void setTree(Object typeObjet){
            if (typeObjet == Temoin.TYPE){
                Tree = new JTreeTemoin(this);
                Tree.repaint();
                scroll = new JScrollPane(Tree);
                scroll.repaint();
            }
        }

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Par défaut
    résolu en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        protected void setTree(Object typeObjet){
            if (typeObjet == Temoin.TYPE){
                this.remove(Tree);
                this.remove(scroll);
                JTreeTemoin nvTree = new JTreeTemoin(this);
                JScrollPane scroll = new JScrollPane(nvTree);
                scroll.setBounds(new Rectangle(0,CB_objet.getY()+CB_objet.getHeight()+5,
                    fenetreParent.CadrePetit.getWidth()-5,
                    fenetreParent.CadrePetit.getDividerLocation()-(CB_objet.getY()+CB_objet.getHeight()+5)));
                scroll.setPreferredSize(new Dimension(fenetreParent.CadrePetit.getWidth(),200));
                this.add(scroll, null);
            }
        }
    dans l'appel de classe

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2006, 09h28
  2. [debutant] TextAera et affichage de texte
    Par daed dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 09/03/2006, 11h50
  3. Réponses: 2
    Dernier message: 28/02/2006, 21h05
  4. [Debutant] probleme d affichage
    Par berg dans le forum Langage
    Réponses: 2
    Dernier message: 10/12/2005, 12h36
  5. [DEBUTANT] JTextField et affichage
    Par jfjava2002 dans le forum Composants
    Réponses: 4
    Dernier message: 09/12/2005, 10h56

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