JTree immer das + anzeigen

DarkWizzard

Mitglied
Hallo,

ich habe ein kleines Problem mit dem JTree, der mich ärgern will.

Undzwar arbeite ich an einer Server-Client Anwendung, die Daten vom Server holt und in einem Baum im Client anzeigt. Die Daten werden erst geholt, wenn man auf das + klickt.

Das funktioniert auch ohne Probleme. Nun habe ich aber ein bisschen Exception-Handling eingebaut, damit der Client eine vernünftige Fehlermeldung anzeigen kann, wenn der Server nicht zu erreichen ist. Das Problem ist jetzt, dass das + vom Knoten, der nicht geöffnet werden konnte, auf nimmer Wiedersehen verschwindet wenn so ein Fehler auftritt und keine Children hinzugefügt werden.

Dass Icon ist immer das richtige (dafür habe ich isLeaf() überschrieben), aber dagegen, dass das + verschwindet habe ich noch nichts gefunden. Vorher, als das noch eine unbehandelte Exception war, war das noch kein Problem. Da wurden die Funktionen anscheinend so unterbrochen dass er das danach nicht mehr gemacht hat. Aber auch beim Debuggen hab ich nicht gefunden wo genau der mir das + klaut :(

Hat jemand ne Idee?
 
Howdie.

Ich hatte letztens ein ähnliches Problem. Letztendlich hab ich es auf die einfachste und unsauberste Art gelöst: Beim Auftreten einer Exception (oder sonstigen Ereignissen, die Kindknoten verhindern) wird ein Dummy-Knoten als Kind angehängt ohne den aktuellen Knoten aufzuklappen. D.h. der Knoten ist erweiterbar und das + wird angezeigt. Alles was du hierbei beachten musst, ist den den Dummy-Knoten wieder zu löschen, wenn du die Datenhaltung scannst.

Gruß
miffi
 
Hi,

danke für deine Antwort. Das wäre ne Möglichkeit. Die ist zwar unsauber, aber bis jetzt hab ich einfach eine unbehandelte RuntimeException geworfen die ich ignoriere, nachdem ich den Fehler behandelt habe. Du siehst, es geht also noch einfacher und unsauberer ;)

Wenn ich mal Zeit hab werd ich deine Lösung vielleicht einbauen, wenn ich bis dahin nichts anderes finde.

Gruß,
DarkWizzard
 
Zurück