Sep
9
2010

CheckboxTree in Java mit Swing

Es werden nur wenige vorgefertigte GUI-Elemente im Swing-Paket von Java mitgeliefert. Unter den mitgelieferten Klassen ist auch der sogenannte JTree, mit dem man Baum-Darstellungen, wie man sie aus dem Explorer unter Windows oder Linux kennt, erstellen kann.

Leider gibt es aber keine vorgefertige Variante dieses JTree, die mit CheckBox-Elementen ausgestattet ist. Damit wäre es zum Beispiel möglich dem Benutzer bei einer Installation die Wahl zu lassen, welche Komponenten installiert werden sollen bzw. eine strukturierte Auswahlmöglichkeit zu bieten. Dazu müsste man als Programmierer schon Hand anlegen und über den Renderer selbst Checkboxen einfügen.

Wer dies zu aufwändig findet oder (noch) nicht die entsprechenden Fähigkeiten dafür hat, findet im Internet so einiges an Material zu diesem Thema. Jedoch ist es relativ schwierig eine ansprechende und auch aktuelle, vorgefertigte Lösung zu finden. Denn schließlich soll das Programm dann auch auf Windows Vista und Windows 7 laufen.

Hier bietet sich der CheckBoxTree zweier italienischer Programmierer an, der neu und stets aktualisiert ist. Verwendet werden kann dieser wie ein gewöhnlicher JTree, jedoch mit der zusätzlich Option über

TreePath[] tp = checkboxTree.getCheckingPaths();

oder

TreePath[] tp = checkboxTree.getCheckingRoots();

die per CheckBox ausgewählten Baum-Elemente abfragen zu können.

Der Download befindet sich auf der Homepage des Projektes. Zusätzlich gibt es einen ausführlichen Artikel samt Informationen und Verwendungsanleitung zum CheckBoxTree auf javaworld.com.

Über den Autor:

Als technikbegeisterter Physikstudent befasse ich mich gerne in meiner (teilweise spärlichen) Freizeit mit den neuesten Technik und IT Trends. Ich möchte auf meinem Blog Retracked.net einige meiner Recherchen oder einfach nur Themen, die ich spannend finde, mit euch teilen.

Kommentiere diesen Artikel

Für regelmäßige Kommentatoren gibt es ab dem 3. Kommentar doFollow-Links. Aber verwendet keine Keywords im Namen, sonst werden sie entfernt.