Swing-Bäume leicht gemacht

Wer schon einmal Swing-Code unter Nutzung der Baum-Komponente Jtree geschrieben hat, wird wissen, dass es sich bei dem Swing-Baum um ein komplexes Gebilde handelt, das mit Vorsicht zu handhaben ist. Es ist zwar vergleichsweise einfach, einen Baum aus einem statischen Datensatz zu erstellen, doch sobald sich die Daten ändern, kann sich der Jtree-Code rasch in einen undurchdringlichen Dschungel verwandeln. Abhilfe kann da zum Beispiel eine Anwendung der Zen-Programmierung schaffen.

Zunächst einmal ein Blick auf die „klassische“ Vorgehensweise bei der Nutzung von Jtree. Hierbei kommt das DefaultTreeModel zum Einsatz, und es werden DefaultMutableTreeNode-Instanzen erstellt, die die Datenobjekte enthalten. Indem man dann so genannte „Kinder“ zu diesen DefaultMutableTreeNodes hinzufügt beziehungsweise diese entfernt, wird der Baum verändert. Soweit scheint alles ganz einfach. Nach dem Erstellen dieses umfangreichen Baums ist jedoch festzustellen, dass dieser einen erheblichen Speicherbedarf hat. Schlimmer noch: es tritt das gefürchtete Swing-Threading auf, und seltsame Fehlermeldungen scheinen darauf hinzuweisen, dass im Baum ganz andere Dinge geschehen als erwartet.

Im hier angeführten Beispiel galt es, einen Baum aus Tausenden von Online-Diensten stammenden Mitteilungen zu verwalten und diese Mitteilungen in einem Baum durch Threading verknüpften Mitteilungen darzustellen. Das klingt ganz einfach, doch erhält die Mitteilungsdatenbank ihre Mitteilungen von zahlreichen Agent-Prozessen, so dass sie im Grunde dynamisch aufgebaut ist. Da im behandelten Fall bereits drei Baum-Beziehungen in der Mitteilungsdatenbank verwaltet wurden, erschien die Einrichtung eines kompletten doppelten Baums im Speicher überflüssig. Außerdem führte der Versuch der Verwaltung des Ladens der Mitteilungen (die mitunter recht groß sein konnten) dazu, dass sich die GUI-Logik mit der Business-Logik vermischte – ergänzt durch eine Reihe wahllos verteilter Caching-Optimierungen.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Gefahren im Foxit PDF-Reader

Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.

2 Tagen ago

Bitdefender entdeckt Sicherheitslücken in Überwachungskameras

Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.

2 Tagen ago

Top-Malware in Deutschland: CloudEye zurück an der Spitze

Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…

2 Tagen ago

Podcast: „Die Zero Trust-Architektur ist gekommen, um zu bleiben“

Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…

2 Tagen ago

Google schließt weitere Zero-Day-Lücke in Chrome

Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…

2 Tagen ago

Hacker greifen Zero-Day-Lücke in Windows mit Banking-Trojaner QakBot an

Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…

2 Tagen ago