TestTree4.java Source code

Java tutorial

Introduction

Here is the source code for TestTree4.java

Source

/*
Java Swing, 2nd Edition
By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole
ISBN: 0-596-00408-7
Publisher: O'Reilly 
*/
// TestTree4.java
//Another test to see how we can build a tree and customize its icons.
//This example does not affect the icons of other trees.
//

import java.awt.BorderLayout;
import java.util.Hashtable;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;

public class TestTree4 extends JFrame {

    JTree tree1, tree2;

    DefaultTreeModel treeModel;

    public TestTree4() {
        super("Custom Icon Example");
        setSize(350, 450);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        // Build the hierarchy of containers & objects
        String[] schoolyard = { "School", "Playground", "Parking Lot", "Field" };
        String[] mainstreet = { "Grocery", "Shoe Shop", "Five & Dime", "Post Office" };
        String[] highway = { "Gas Station", "Convenience Store" };
        String[] housing = { "Victorian_blue", "Faux Colonial", "Victorian_white" };
        String[] housing2 = { "Mission", "Ranch", "Condo" };
        Hashtable homeHash = new Hashtable();
        homeHash.put("Residential 1", housing);
        homeHash.put("Residential 2", housing2);

        Hashtable cityHash = new Hashtable();
        cityHash.put("School grounds", schoolyard);
        cityHash.put("Downtown", mainstreet);
        cityHash.put("Highway", highway);
        cityHash.put("Housing", homeHash);

        Hashtable worldHash = new Hashtable();
        worldHash.put("My First VRML World", cityHash);

        // Build our tree out of our big hashtable
        tree1 = new JTree(worldHash);
        tree2 = new JTree(worldHash);

        DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree2.getCellRenderer();
        renderer.setClosedIcon(new ImageIcon("door.closed.gif"));
        renderer.setOpenIcon(new ImageIcon("door.open.gif"));
        renderer.setLeafIcon(new ImageIcon("world.gif"));

        JSplitPane pane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, tree1, tree2);

        getContentPane().add(pane, BorderLayout.CENTER);
    }

    public static void main(String args[]) {
        TestTree4 tt = new TestTree4();
        tt.setVisible(true);
    }
}