Java Code
/**
* Adapted from:
* Modified by: E.S. Boese
* A 1.4 application
*/
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
public class JTreeEx extends JApplet
implements TreeSelectionListener {
private JTree tree;
//Optionally play with line styles. Possible values are
//"Angled" (the default), "Horizontal", and "None".
private static boolean playWithLineStyle = true;
private static String lineStyle = "Angled";
public void init()
{
resize( 500, 270 );
//Create the nodes.
DefaultMutableTreeNode top =
new DefaultMutableTreeNode("Liz's Playground");
createNodes(top);
//Create a tree that allows one selection at a time.
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode
(TreeSelectionModel.SINGLE_TREE_SELECTION);
//Listen for when the selection changes.
tree.addTreeSelectionListener(this);
if (playWithLineStyle) {
System.out.println("line style = " + lineStyle);
tree.putClientProperty("JTree.lineStyle", lineStyle);
}
//Create the scroll pane and add the tree to it.
JScrollPane treeView = new JScrollPane(tree);
treeView.setPreferredSize(new Dimension(450, 250));
initHelp();
//Add the tree to this panel.
add(treeView);
}
/** Required by TreeSelectionListener interface. */
public void valueChanged(TreeSelectionEvent e)
{
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
if (node == null)
return;
Object nodeInfo = node.getUserObject();
if (node.isLeaf())
{
BookInfo book = (BookInfo)nodeInfo;
}
}
private class BookInfo
{
public String bookName;
public BookInfo(String book )
{
bookName = book;
}
public String toString() {
return bookName;
}
}
private void initHelp() {
String s = "TreeDemoHelp.html";
}
private void createNodes(DefaultMutableTreeNode top) {
DefaultMutableTreeNode category = null;
DefaultMutableTreeNode book = null;
category = new DefaultMutableTreeNode("Java Books");
top.add(category);
// java book
book = new DefaultMutableTreeNode(new BookInfo ("programming.java" ));
category.add(book);
// JLS
book = new DefaultMutableTreeNode(
new BookInfo( "The Java Language Specification"));
category.add(book);
//Bloch
book = new DefaultMutableTreeNode(new BookInfo
("Effective Java Programming Language Guide"));
category.add(book);
//Arnold/Gosling
book = new DefaultMutableTreeNode(new BookInfo
("The Java Programming Language"));
category.add(book);
//Chan
book = new DefaultMutableTreeNode(new BookInfo
("The Java Developers Almanac"));
category.add(book);
// SECOND MAIN CATEGORY
category = new DefaultMutableTreeNode("Fun Books");
top.add(category);
// enlightenment
book = new DefaultMutableTreeNode(new BookInfo("enlightenment" ) );
category.add(book);
// hitchiker's guid
book = new DefaultMutableTreeNode(
new BookInfo( "Hitchhiker's Guide To the Universe") );
category.add(book);
}
}