JTree wird nicht mehr geleert (deleteAllEntries)

gerdgerdgerd

Aktives Mitglied
Hallo zusammen,

ich habe das komische Problem das mein JTree nicht mehr geleert wird. Ich importiere eine XML die hierarchisch als Baumstruktur dargestellt wird. Importiere ich eine neue XML so werden die Einträge hinzugefügt, obwohl ich folgende Methode aufrufe:

Java:
public void deleteAllEntries() {
  DefaultTreeModel model = (DefaultTreeModel) getModel();		
  model.setRoot(null);
}

Und wenn ich eine neue XML hinzufüge, mache ich das folgendermaße:

Java:
DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("root");
((DefaultTreeModel) getModel()).setRoot((DefaultMutableTreeNode) rootNode);
...
rootNode.add(newNode);

d.h. das DefaultTreeModel muss das selbe sein, ansonsten könnte er die Einträge aus der 2ten XML nicht eintragen. Aber wieso entfernt er diese nicht ordnungsgemäß? Die deleteAllEntries Methode wird aufgerufen bevor ich eine XML Parse und diese letztendlich hinzufüge. Ich bin mir auch zu 100% sicher, das die Methode aufgerufen wird.

Schonmal Danke
 
Zuletzt bearbeitet:
Mach doch mal ein KSKB. Du hast sicher irgendwo einen Fehler eingebaut, der aus Deinen Ausschnitten nicht ersichtlich ist.

Ebenius
 
das komische ist nur, dass die einträge im baum ergänzt werden, aber das löschen vorher nicht funktioniert. ich schau nochmal genau drüber.

edit: hier nochmal ein kleiner ausschnitt aus meiner add Methode:

Java:
public void addEntry(DataModel model) {
  if (model != null) {
    this.model = model;
    deleteAllEntries();

    DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Thing");
    ((DefaultTreeModel) getModel()).setRoot((DefaultMutableTreeNode) rootNode);
    
    ...

d.h. bevor ich einfügen rufe ich die deleteAllEntries() Methode auf. da dies definitiv auf der gleichen instanz geschieht, muss der fehler wo anderst liegen. aber momentan sehe ich nicht wo, bzw. kann mir das auch nicht erklären :bahnhof: .

edit:
das problem kam von meinem dataModel, der hat die daten doppelt gehalten, deswegen hatte es den anschein das der jtree nicht geleert wird. dann ist nur die frage wieso das auf einmal so war, da es vorher ging.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben