/* Listing3812.java */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;

public class Listing3812
extends JFrame
{
  public Listing3812()
  {
    super("JTree 2");
    addWindowListener(new WindowClosingAdapter(true));
    //Einfaches TreeModel bauen
    DefaultMutableTreeNode root, child, subchild;
    root = new DefaultMutableTreeNode("Root");
    for (int i = 1; i <= 5; ++i) {
      String name = "Child-" + i;
      child = new DefaultMutableTreeNode(name);
      root.add(child);
      for (int j = 1; j <= 3; ++j) {
        subchild = new DefaultMutableTreeNode(name + "-" + j);
        child.add(subchild);
      }
    }
    //JTree erzeugen und Einfachselektion aktivieren
    JTree tree = new JTree(root);
    TreeSelectionModel tsm = new DefaultTreeSelectionModel();
    tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.setSelectionModel(tsm);
    tree.setRootVisible(true);
    //JTree einfügen
    Container cp = getContentPane();
    cp.add(new JScrollPane(tree), BorderLayout.CENTER);
    //TreeSelectionListener hinzufügen
    tree.addTreeSelectionListener(
      new TreeSelectionListener()
      {
        public void valueChanged(TreeSelectionEvent event)
        {
          TreePath tp = event.getNewLeadSelectionPath();
          if (tp != null) {
            System.out.println("  Selektiert: " + tp.toString());
          } else {
            System.out.println("  Kein Element selektiert");
          }
        }
      }
    );
  }

  public static void main(String[] args)
  {
    try {
      Listing3812 frame = new Listing3812();
      frame.setLocation(100, 100);
      frame.setSize(250, 200);
      frame.setVisible(true);
    } catch (Exception e) {
    }
  }
}