16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

5.6.5.6 Hierarchische Strukturen<br />

Die Klasse JTree dient zur Darstellung, Navigation und Berabeitung baumartiger,<br />

hierarchischer Strukturen. Die Baumdarstellung basiert auf e<strong>in</strong>em hierarchischen<br />

Datenmo<strong>de</strong>ll. Je<strong>de</strong> Mo<strong>de</strong>llklasse zur Baumdarstellung muß sich auf das Interface<br />

TreeMo<strong>de</strong>l beziehen. JTree besitzt dafür Konstruktoren bzw. die Zugriffsmetho<strong>de</strong>n<br />

getMo<strong>de</strong>l() und setMo<strong>de</strong>l(). Die e<strong>in</strong>zelnen Baumknoten müssen die Interfaces<br />

TreeNo<strong>de</strong> o<strong>de</strong>r MutableTreeNo<strong>de</strong> implementieren. Die Klasse<br />

DefaulMutableTreeNo<strong>de</strong> enthält e<strong>in</strong>e universelle Implementierung (<strong>in</strong>klusive<br />

Navigationsmetho<strong>de</strong>n) für Baumknoten<br />

Erzeugen e<strong>in</strong>es Baums. Liegt e<strong>in</strong> geeignetes Datenmo<strong>de</strong>ll vor, ist das Instanzieren<br />

e<strong>in</strong>es JTree e<strong>in</strong>fach. Die bei<strong>de</strong>n wichtigsten Konstruktoren <strong>de</strong>r Klasse JTree s<strong>in</strong>d:<br />

public JTree(TreeMo<strong>de</strong>l neuesMo<strong>de</strong>ll)<br />

// erwartet wird e<strong>in</strong> vor<strong>de</strong>f<strong>in</strong>iertes TreeMo<strong>de</strong>l zur Darstellung <strong>de</strong>r Baumelemente. E<strong>in</strong> TreeMo<strong>de</strong>l<br />

// kapselt alle relevanten Informationen über die Baumstruktur. Es liefert auf Anfrage die Wurzel<br />

// <strong>de</strong>s Baums, stellt Informationen über e<strong>in</strong>en bestimmten Knoten bereit o<strong>de</strong>r liefert <strong>de</strong>ssen<br />

// Nachfolgeknoten<br />

public JTree(TreeNo<strong>de</strong> wurzel)<br />

// Die Wurzel wird automatisch <strong>in</strong> e<strong>in</strong> geeignetes TreeMo<strong>de</strong>l e<strong>in</strong>gebettet. Der JTree erfragt die zur<br />

// Darstellung <strong>de</strong>r Navigation erfor<strong>de</strong>rlichen Daten immer beim TreeMo<strong>de</strong>l. Das über wurzel<br />

// Baumwurzel) <strong>in</strong>stanzierte DefaultTreeMo<strong>de</strong>l kann diese Informationen aus <strong>de</strong>n Knoten und <strong>de</strong>n<br />

// dar<strong>in</strong> gespeicherten Verweisen auf ihre Nachfolgeknoten entnehmen.<br />

Zugriffsmetho<strong>de</strong>n auf das Datenmo<strong>de</strong>ll.<br />

public TreeMo<strong>de</strong>l getMo<strong>de</strong>l()<br />

public void setMo<strong>de</strong>l(TreeMo<strong>de</strong>l neuesMo<strong>de</strong>ll)<br />

Anzeige bzw. Unterdrücken <strong>de</strong>r Wurzel bei <strong>de</strong>r Baumdarstellung. E<strong>in</strong>e wichtige<br />

Konfigurationsoption regelt, ob die Wurzel <strong>de</strong>s Baums bei se<strong>in</strong>er Darstellung<br />

angezeigt o<strong>de</strong>r unterdrückt wer<strong>de</strong>n soll. Auf sie kann mit <strong>de</strong>n Metho<strong>de</strong>n<br />

public void setRootVisible(boolean rootVisible)<br />

public boolean isRootVisible()<br />

zugegriffen wer<strong>de</strong>n.<br />

Zur Beschriftung e<strong>in</strong>es Knotens bei <strong>de</strong>r visuellen Darstellung verwen<strong>de</strong>t e<strong>in</strong> JTree<br />

die Metho<strong>de</strong> toStr<strong>in</strong>g().<br />

Abfragen zur Selektion von Baumknoten. JTree stellt e<strong>in</strong>e Reihe von Metho<strong>de</strong>n für<br />

Abfragen bereit, ob und welche Knoten selektiert s<strong>in</strong>d, z.B.:<br />

public TreePath getSelectionPath()<br />

// ermittelt das selektierte Element. Bei aktivierter Mehrfachselektion liefert die Metho<strong>de</strong> das erste aller<br />

// selektierten Elemente. Falls ke<strong>in</strong> Knoten selektiert ist, wird null zurückgeliefert.<br />

public TreePath[] getSelectionPaths()<br />

// zurückgegeben wird e<strong>in</strong> Array mit allen selektierten Knoten<br />

public TreePath getLeadSelectionPath()<br />

// liefert das markierte Element<br />

Die angegebenen Metho<strong>de</strong>n liefern Objekte <strong>de</strong>r Klasse TreePath. Diese Klasse<br />

beschreibt e<strong>in</strong>en Knoten im Baum über <strong>de</strong>n Pfad, <strong>de</strong>r von <strong>de</strong>r Wurzel aus beschritten<br />

wer<strong>de</strong>n muß, um zu <strong>de</strong>n Knoten zu gelangen. Mit<br />

public Object getLastSelectedPathComponent()<br />

407

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!