Kilkenny95
Messages postés157Date d'inscriptionlundi 24 septembre 2018StatutMembreDernière intervention31 août 2020
-
13 mars 2019 à 10:10
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();
}
}
}
});
}