Hallo,
ich habe eine Klasse geschrieben, die einen Binärbaum erzeugt. Das klappt alles prima. Das ganze möchte ich jetzt noch visualisieren, also als Grafik ausgeben. Die Grundstruktur sieht gut aus, nur leider überlappen sich einige Knoten (siehe Bild im Anhang).
Meine Methode zum zeichnen sieht bisher wie folgt aus:
Hat jemand eine Idee, wie ich diesen Fehler beheben kann?
Viele Grüße
MyPiano
ich habe eine Klasse geschrieben, die einen Binärbaum erzeugt. Das klappt alles prima. Das ganze möchte ich jetzt noch visualisieren, also als Grafik ausgeben. Die Grundstruktur sieht gut aus, nur leider überlappen sich einige Knoten (siehe Bild im Anhang).
Meine Methode zum zeichnen sieht bisher wie folgt aus:
Code:
public class BinaryTree {
private Integer content = null;
private BinaryTree left = null;
private BinaryTree right = null;
//....
public void drawBinaryTree(Graphics painter, int x, int y) {
if (content != null) {
painter.drawRect(x, y, 40, 30);
painter.drawString(Integer.toString(content), x + 7, y + 21);
painter.drawLine(x + 20, y + 30, x - 65, y + 50);
painter.drawLine(x + 20, y + 30, x + 100, y + 50);
if (left != null) {
// painter.drawRect(x-85, y+50, 40, 30);
left.drawBinaryTree(painter, x - 85, y + 50);
} else {
painter.drawRect(x - 85, y + 50, 40, 30);
painter.drawString("Null", x - 78, y + 71);
}
if (right != null) {
// painter.drawRect(x+80, y+50, 40, 30);
right.drawBinaryTree(painter, x + 80, y + 50);
} else {
painter.drawRect(x + 80, y + 50, 40, 30);
painter.drawString("Null", x + 87, y + 71);
}
} else {
painter.drawRect(x, y, 40, 30);
painter.drawString("Null", x + 7, y + 21);
}
}
}
Hat jemand eine Idee, wie ich diesen Fehler beheben kann?
Viele Grüße
MyPiano