Wie zeichnet man einen Baum repräsentieren ein Diagramm der angeschlossenen Knoten?
Ich anzeigen möchten, einen Baum in ein Java-GUI, aber ich weiß nicht wie. Der Baum stellt ein Diagramm der angeschlossenen Knoten, wie diese:
Soll ich sagen, ich habe meine eigene tree Klasse:
public class BinaryTree
{
private BinaryNode root;
public BinaryTree( )
{
root = null;
}
public BinaryTree( Object rootItem )
{
root = new BinaryNode( rootItem, null, null );
}
public BinaryTree( Object rootItem,BinaryNode a,BinaryNode b )
{
root = new BinaryNode( rootItem, a, b );
}
public int leavesCount(){
return BinaryNode.leavesCount(root);
}
public boolean equal(BinaryTree a,BinaryTree b){
return BinaryNode.equal(a.root, b.root);
}
public void printPreOrder( )
{
if( root != null )
root.printPreOrder( );
}
public void printInOrder( )
{
if( root != null )
root.printInOrder( );
}
public void printPostOrder( )
{
if( root != null )
root.printPostOrder( );
}
public void makeEmpty( )
{
root = null;
}
public boolean isEmpty( )
{
return root == null;
}
public void merge( Object rootItem, BinaryTree t1, BinaryTree t2 ) throws MergeAbrot
{
if( t1.root == t2.root && t1.root != null )
{
throw new MergeAbrot("MergeAbrot");
}
root=new BinaryNode( rootItem, t1.root, t2.root );
if( this != t1 )
t1.root = null;
if( this != t2 )
t2.root = null;
}
public int size( )
{
return BinaryNode.size( root );
}
public int height( )
{
return BinaryNode.height( root );
}
}
Ich nur zeichnen möchten, der Baum. Wie sollte ich das tun?
InformationsquelleAutor Oli | 2012-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg, die ich denken kann, ist das schreiben einer Klasse, die Sie erweitert
JPanel
und überschreiben Sie diepaintComponent()
Methode. In der paint-Methode können Sie eine Iteration durch die Struktur und Farbe der einzelnen Knoten. Hier ein kurzes Beispiel:Einen Stich an der Malerei der Baum, wenn Sie können ' T es herausfinden nach, was Sie versucht haben, in Ihre Frage.
InformationsquelleAutor jpalm
Könnten Sie in Erwägung ziehen diesen:
JHotDraw, zitiert hier, eine meta-Bibliothek für das erstellen von benutzerdefinierten Grafik-Editoren.
Prefuse Visualisierung Bibliothek, illustriert hier und hier.
Batik, das die SVG-rendering.
JGraph demo und Bedienungsanleitung.
GraphStream, illustriert hier.
JFreeChart
XYBubbleRenderer
Einen
JTree
vorgeschlagen hier, mit einem benutzerdefiniertenTreeIcon
.Einen custom renderer, mit x basierend auf einem Bruchteil der Baum in die Breite und y basierend auf rekursionsebene.
Einem einfachen Diagramm-editor wie
draw.GraphPanel
, illustriert hier.InformationsquelleAutor trashgod
Ich würde sagen, es ist Wert, heraus zu überprüfen Abego ist TreeLayout zu. Es ist im wesentlichen ein Baum layout-Algorithmus, so kann es verwendet werden, mit jeder Zeichnung-Mechanismus, aber es enthält auch einige demos/Beispiele zeichnen von Graphen in SVG und Swing.
InformationsquelleAutor Joost
Ich denke, Sie brauchen nur zu Lesen über JTree:
http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html
Und vielleicht einige andere Allgemeine Informationen über Swing
Nicht sicher, ob es freie Bibliotheken zu erstellen wie visual Bäume. Sie können immer ziehen Sie es durch sich selbst, wenn auch mit grundlegenden Grafik-tools.
InformationsquelleAutor Mikle Garin