2012-04-04 2 views
-2

Ich versuche, eine XML-Datei in Java zu analysieren, nachdem ich es als einen Baum darzustellen habe JFrame wie diese zur Sichtbarmachung Graphen enter image description hereWie ein Baum in der Java-Sprache ziehen

+2

Ihre Frage, ich fürchte, ist im Moment sehr mehrdeutig. Bitte fügen Sie zusätzliche Informationen hinzu, damit die Community Sie besser bei einer Antwort unterstützen kann. – JDD

+0

Angenommen, Sie möchten die Abbildung replizieren, warum Java? Irgendein bestimmter Grund? Sonst benutze [Dia] (http://projects.gnome.org/dia/)! –

+0

Ich versuche eine XML-Datei in Java zu parsen, nachdem ich sie als Baum mit Jframe darstellen muss –

Antwort

2

Bäume sind in der Regel eine der einfacheren verknüpft Konstrukte zu drucken, wie dies zu legen, weil Pfade der Regel nicht „verschmelzen“ oder „Kreuz“.

Sie können es grob tabellarisch angehen, indem Sie den Baum von links nach rechts durchlaufen: Beginnen Sie an der Wurzel und zeichnen Sie die Darstellung oben links im Bereich. Dann durchlaufen Sie den "linken" Zweig eine Ebene nach der anderen und zeichnen die Darstellungen dieser Knoten in aufeinanderfolgend niedrigeren "Zeilen", in derselben "Spalte" wie die Wurzel. Wenn Sie dann zu den "rechten" Knoten übergehen, zeichnen Sie diesen Knoten in der nächsten "Spalte", die auf der gleichen Ebene rechts verfügbar ist. Dies erzeugt einen rampenförmigen Graphen der Baumstruktur.

Sie können eine Voranalyse der Anzahl der Ebenen und Knoten auf jeder Ebene hinzufügen, wodurch Sie den Baum in eine grobe Pyramidenform "zentrieren" können, indem Sie die maximale Anzahl der Ebenen kennen, die der Graph benötigt Anzahl der Knoten auf jeder Ebene dieses Graphen. Dazu müssen Sie jedoch den gesamten Graphen durchlaufen, bevor Sie mit dem Zeichnen beginnen.

Um die Knoten eines Baumes so zu "arrangieren", dass sie in den kleinsten Bereich passen, ohne dass Pfeile sich kreuzen oder überlappen, ist das ein Problem, das weit über der durchschnittlichen SO-Antwort liegt.

0

Prefuse wahrscheinlich etwas ästhetisch ähnlich schaffen könnte. Natürlich könntest du die primitive Route machen und die Grafiken manuell machen. Für eine XML-Transformation kann die API TreeMLReader von Nutzen sein, allerdings müssen Sie XML möglicherweise zuerst mit XSLT in das TreeML-Format konvertieren.