next up previous contents
Nächste Seite: Baumelemente auswählen Aufwärts: AWT / Swing Vorherige Seite: Funktionsgraphen darstellen   Inhalt

Baumstrukturen darstellen

Mit dem JTree-Objekt können baumartig strukturierte Daten dargestellt werden:


\includegraphics[width=3cm]{LosBaum.ps}

import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;

public class Baum {
    public static void main (String [] args) {
        if (args.length<3) {
            System.out.println("# Aufruf: java Baum aeste zweige blaetter");
            System.exit(0);
        }
        int astzahl = Integer.parseInt(args[0]);
        int zweigezahl = Integer.parseInt(args[1]);
        int blattzahl = Integer.parseInt(args[2]);
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        DefaultMutableTreeNode wurzel = new DefaultMutableTreeNode("Wurzel");

        for (int i = 1; i<=astzahl; i++) {
            DefaultMutableTreeNode ast = new DefaultMutableTreeNode("Ast" + i);
            wurzel.add(ast);
            for (int j = 1; j<=zweigezahl; j++) {
                DefaultMutableTreeNode zweig = new DefaultMutableTreeNode("Zweig" + i + j);
                ast.add(zweig);
                for (int k = 1; k<=blattzahl; k++) {
                    zweig.add(new DefaultMutableTreeNode("Blatt" + i + j + k));
                }
            }
        }

        JTree baumchen = new JTree (wurzel);
        JScrollPane scrollbaum = new JScrollPane(baumchen);

        frame.getContentPane().add(scrollbaum);
        frame.pack();
        frame.setLocation(100,100);
        frame.setSize(200,300);
        frame.show();
    }
}

Beim Aufruf wird die Anzahl der Äste, die Anzahl der Zweige pro Ast und die Anzahl der Blätter pro Zweig angegeben; fehlt ein Parameter, so bricht das Programm mit einer kurzen Meldung ab. Das Objekt DefaultMutableTreeNode wird für jedes Baumelement verwendet, die mit der add-Methode zusammengefügt werden. Das Wurzelelement wird schließlich als Paramater an den neu erzeugten Baum übergeben.



Alfred Nussbaumer 2003-02-10