Menu

Problème de suppression de noeud Jtree

Messages postés
94
Date d'inscription
lundi 24 septembre 2018
Dernière intervention
21 mars 2019
- - Dernière réponse : Kilkenny95
Messages postés
94
Date d'inscription
lundi 24 septembre 2018
Dernière intervention
21 mars 2019
- 14 mars 2019 à 16:19
Bonjour à toutes et à tous,
J'ai créé un Jtree "arbre" où je peux ajouter et supprimer des noeuds à l'aide de boutons. Le tout est sauvegarder dans un fichier texte.
Lors de l'ajout je n'ai aucun soucis, mais quand je veux supprimer un élémtent du jtree j'ai ces erreurs :



Et voici mon code :

public void Jtreebdd() {

    nomAddedNode.setPreferredSize(new Dimension(100,20));

    DefaultMutableTreeNode racine = new DefaultMutableTreeNode("bdd_mspifm");

    arbre = new JTree(racine);


    try {
        FileInputStream fis = new FileInputStream("C:/Users/DELL/Desktop/Jtree.txt");
        ObjectInputStream oos = new ObjectInputStream(fis);
        arbre = (JTree)oos.readObject();
    }
    catch (Exception e)
    {
    }

    arbre.addTreeSelectionListener(new TreeSelectionListener() {

        @Override
        public void valueChanged(TreeSelectionEvent e) {
            System.out.println(arbre.getLastSelectedPathComponent());

            TreeSelectionModel smd = arbre.getSelectionModel();
            if (smd.getSelectionCount() > 0) {

                DefaultMutableTreeNode parent = (DefaultMutableTreeNode) arbre.getLastSelectedPathComponent();
                nomAddedNode.setText(parent.getUserObject().toString());


            }
        }
    });

    addNode.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == addNode) {
                System.out.println("addnode");
                DefaultMutableTreeNode parent = (DefaultMutableTreeNode) arbre.getLastSelectedPathComponent();
                DefaultMutableTreeNode nouveau = new DefaultMutableTreeNode(nomAddedNode.getText());
                parent.add(nouveau);
                //Reload Jtree

                try {
                    FileOutputStream fos = new FileOutputStream("C:/Users/DELL/Desktop/Jtree.txt");
                    ObjectOutputStream oos = new ObjectOutputStream(fos);
                    oos.writeObject(arbre);
                }
                catch (Exception ex)
                {
                }

            }

        }
    });

    removeNode.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == removeNode) {
                System.out.println("remove");

                DefaultMutableTreeNode parent = (DefaultMutableTreeNode) arbre.getLastSelectedPathComponent();
                if (parent != arbre.getModel().getRoot()) {
                    DefaultTreeModel model = (DefaultTreeModel) arbre.getModel();
                    model.removeNodeFromParent(parent);

                    try {
                        FileOutputStream fos = new FileOutputStream("C:/Users/DELL/Desktop/Jtree.txt");
                        ObjectOutputStream oos = new ObjectOutputStream(fos);
                        oos.writeObject(arbre);
                    }
                    catch (Exception ex)
                    {
                    }
                  //  model.reload();
                }
            }

        }
    });

}





Voilà, si quelqu'un pouvait m'aider
Afficher la suite 

Votre réponse

1 réponse

Messages postés
94
Date d'inscription
lundi 24 septembre 2018
Dernière intervention
21 mars 2019
0
Merci
Personne ?
Commenter la réponse de Kilkenny95