Wie ein Baum in Java zu bauen

EIN Baum ist ein schicker Swing-Komponente, die Nerds hierarchische Daten in Umrissform in Java, die Computer zu beziehen, wie einem Baum zeigt. Die Art der Baum Sie wahrscheinlich am meisten vertraut sind, ist die Verzeichnisstruktur Ihrer Festplatte. Die Bäume werden von der erstellt JTree Klasse.

Bevor Sie tatsächlich eine Baumsteuerung erstellen können, müssen Sie den Baum bauen es anzeigt. Der einfachste Weg, das zu tun, ist die zu verwenden DefaultMutableTreeNode Klasse.

Das DefaultMutableTreeNode Klasse implementiert die TreeNode Schnittstelle. Als Ergebnis können Sie verwenden DefaultMutableTreeNode Objekte für jedes der Verfahren, die in dieser Tabelle aufgelistet, die für nennen TreeNode Objekte.

constructorBeschreibung
DefaultMutableTreeNode ()Erstellt einen leeren Baumknoten.
DefaultMutableTreeNode (ObjectuserObject)Erstellt einen Baumknoten mit dem angegebenen Benutzerobjekt.
VerfahrenBeschreibung
void add (TreeNode Kind)Fügt einen untergeordneten Knoten.
TreeNode getFirstChild ()Ruft die erste dieser Kinder des Knotens.
DefaultMutableTreeNodegetNextSibling ()Ruft die nächste Geschwister.
TreeNode getParent ()Wird diese Eltern-Knoten.
Objekt getUserObject ()Ruft das Benutzerobjekt für diesen Knoten.

Das DefaultMutableTreeNode Klasse bietet drei grundlegende Eigenschaften für jeden Knoten:

  • Das Benutzerobjekt, welches enthält die durch den Knoten repräsentierten Daten. Sie können Objekte jeglicher Art Sie für das Benutzerobjekt verwenden möchten. Der Baum-Steuerelement ruft der Benutzer Objekt bespannen Verfahren, um zu bestimmen, welcher Text für jeden Knoten angezeigt werden soll. Der einfachste Weg, um das Benutzerobjekt zu setzen, ist es über die passieren DefaultMutableTreeNode Konstruktor.

  • Die Eltern dieses Knotens, es sei denn, der Knoten ist nun mal die Wurzel zu sein.

  • Kinder dieses Knotens, es sei denn der Knoten passiert ein Blattknoten zu sein. Sie erstellen geordneten Knoten durch die anruf hinzufügen Verfahren.

Das DefaultMutableTreeNode Klasse hat viele weitere Methoden zur Navigation im Baum als die hier gezeigt. ein Wurzelknoten Da jedoch können Sie mit dem getFirstChild und getNextSibling Methoden zu "gehen", um den gesamten Baum und jeden Knoten zugreifen.

Das T-Stück, das hier gebaut wird, listet Spin-Off-Shows von drei populären TV-Shows der Vergangenheit an:

  • The Andy Griffith Show, das hatte zwei Spin-offs: Gomer Pyle, U.s.m.c., und Mayberry R.F.D.

  • Alle in der Familie, die gelaicht direkt vier Spin-offs: Die Jeffersons, Maude, Gloria, und Archie Bunkers Platz. Darüber hinaus wurden zwei dieser Spin-offs hatte Spinoffs ihrer eigenen Beteiligung der Mädchen: Die Jeffersons "Zofe das Thema einer Show wurde aufgerufen Einchecken, und Maude Magd wurde die Hauptfigur in Gute Zeiten.

  • Happy Days, die ausgegliedert Mork und Mindy, Laverne und Shirley und Joanie liebt Chachi.

Sie können viele Ansätze nehmen Bäume zu bauen, von denen die meisten eine rekursive Programmierung einzubeziehen. Die meisten realen Programme, die mit Bäumen arbeiten müssen irgendeine Art von rekursiven Programmierung, den Baum zu bauen.

Der erste Schritt, einen Baum zu schaffen ist, erklärt ein DefaultMutableTreeNode Variable für jeden Knoten, der kein Blattknoten ist. Für die TV-Serie Beispiel, lassen Sie uns mit dem folgenden Code zu starten:

DefaultMutableTreeModel andy, Archie, glücklich, george, maude-

Diese Variablen können lokale Variablen im Rahmen Konstruktor sein, weil, nachdem Sie den Baum aufstellen, werden Sie diese Variablen nicht mehr benötigen. Sie sehen, warum Sie Variablen müssen nicht für die Blattknoten in einem Augenblick.

Als Nächstes erstellen Sie den Wurzelknoten:

DefaultMutableTreeNode root = new DefaultMutableTreeNode ( "Famous Spinoffs") -

Nun, zur Vereinfachung der Aufgabe, alle anderen Knoten zu erstellen, erstellen Sie eine Helfer-Methode aufgerufen makeShow:

Private DefaultMutableTreeNode makeShow (String title, DefaultMutableTreeNode parent) {DefaultMutableTreeNode Show-show = new DefaultMutableTreeNode (Titel) -parent.add (show) -return Show-}

Diese Methode akzeptiert einen String und einen anderen Knoten als Parameter und gibt einen Knoten, dessen Benutzerobjekt wird auf die Schnur Parameter. Der zurückgegebene Knoten wird auch als ein Kind zu dem übergeordneten Knoten hinzugefügt. So können Sie diese Methode sowohl aufrufen, um einen neuen Knoten erstellen und den Knoten im Baum platzieren.

Der nächste Schritt ist die Schaffung einige Knoten. Fortsetzung des Beispiels, beginnen Sie mit den Knoten für The Andy Griffith Show und seine Spin-offs:

andy = makeShow ( "The Andy Griffith Show", root) -makeShow ( "Gomer Pyle, U.s.m.c.", andy) -makeShow ( "Mayberry R.F.D.", andy) -

Hier, makeShow genannt wird, um einen Knoten zu erstellen The Andy Griffith Show, mit dem Wurzelknoten als Eltern angegeben. Der Knoten von dieser Methode zurückgegeben wird in die gespeicherte andy Variable. Dann makeShow zweimal aufgerufen wird, um die Spin-Off-Shows zu schaffen, unter Angabe dieses Mal andy als Mutterknoten.

da weder Gomer Pyle, U.s.m.c., noch Mayberry R.F.D. ein Spin-Off Show hatte, müssen Sie sich nicht, diese Knoten als Mutter Parameter zum Pass makeShow Verfahren.

Als nächstes in dem Beispiel, müssen Sie Knoten erstellen für Alle in der Familie und seine Spin-offs:

Archie = makeShow ( "All in the Family", root) -George = makeShow ( "The Jeffersons", Archie) -makeShow ( "einbuchen", george) -maude = makeShow ( "Maude", Archie) -makeShow ( " Good Times ", Maude) -makeShow (" Gloria ", Archie) -makeShow (" Archie Bunker Place ", Archie) -

In diesem Fall werden sowohl Die Jeffersons und Maude haben untergeordnete Knoten von ihrer eigenen. Als Ergebnis werden die Variablen für diese beiden shows erforderlich, so daß sie als Mutter Parameter übergeben werden kann, um makeShow wenn Sie die Knoten erstellen für Einchecken und Gute Zeiten.

Schließlich, hier ist der Code, der die Knoten erstellt für Glückliche Tage und seine Spin-offs:

glücklich = makeShow ( "Happy Days", root) -makeShow ( "Mork und Mindy", glücklich) -makeShow ( "Laverne und Shirley", glücklich) -makeShow ( "Joanie liebt Chachi", glücklich) -

Der komplette Baum wird erfolgreich im Speicher erstellt, so dass Sie mit der Aufgabe bekommen auf eine der Schaffung JTree Komponente zu zeigen, den Baum ab.

Menü