Hallo,
ich habe eine Arraylist:
Diese beinhaltet die Daten eines Baumes, den ich gerne Visualisieren würde. Das habe ich bisher:
Allerdings ist das sehr unübersichtlich und wie ich das sehe auch nicht zielführend. Im folgenden Bild habe ich einen Beispielbaum, wobei die grünen Zahlen (die nicht gezeichnet werden sollen) den Index des jeweiligen int-Arrays in der ArrayList darstellen. Die Striche wären schön aber nicht zwingend notwendig. Wie würde ich ein System schreiben, das die Positionen der jeweiligen Strings berechnet, sodass alles schön eingerückt ist?

ich habe eine Arraylist:
Java:
private ArrayList<int[]> info = new ArrayList<int[]>();
Java:
private int x, width;
public void paintComponent(Graphics g) {
super.paintComponent(g);
int y = 10;
width = getWidth();
for(int i = 0; i < info.size(); i++) {
if(i == 0) x = (getWidth() - g.getFontMetrics().stringWidth(Arrays.toString(info.get(i)))) / 2;
else calcX(g.getFontMetrics().stringWidth(Arrays.toString(info.get(i))), i);
g.drawString(Arrays.toString(info.get(i)), x, y);
y +=20;
}
}
public void calcX(int w, int index) {
width /= 2;
if(info.get(index).length == 1 && info.get(index-1).length == 1) x = (width * 2);
else x = (width - w) / 2;
}
Allerdings ist das sehr unübersichtlich und wie ich das sehe auch nicht zielführend. Im folgenden Bild habe ich einen Beispielbaum, wobei die grünen Zahlen (die nicht gezeichnet werden sollen) den Index des jeweiligen int-Arrays in der ArrayList darstellen. Die Striche wären schön aber nicht zwingend notwendig. Wie würde ich ein System schreiben, das die Positionen der jeweiligen Strings berechnet, sodass alles schön eingerückt ist?
