// Copyright MageLang Institute; Version $Id: //depot/main/src/edu/modules/Swing/magercises/TreeRender/TreeRender.java#2 $ /* * Demonstrates tree view stuff in a scrollable pane. The way a * tree node is displayed is modified from the default, thus, * demonstrating the flexibility of the new Swing widgets. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; public class TreeRender extends JFrame { // The initial width and height of the frame static int WIDTH = 300; static int HEIGHT = 200; private static class CellRenderer implements TreeCellRenderer { // Create instance variable for renderer // Create constructor to create renderer and make opaque // Implement getTreeCellRendererComponent // configure renderer // return renderer } public TreeRender(String lab) { super(lab); // Create the tree nodes DefaultMutableTreeNode component = new DefaultMutableTreeNode("Component"); DefaultMutableTreeNode container = new DefaultMutableTreeNode("Container"); DefaultMutableTreeNode box = new DefaultMutableTreeNode("Box"); DefaultMutableTreeNode jComponent = new DefaultMutableTreeNode("JComponent"); DefaultMutableTreeNode abstractButton = new DefaultMutableTreeNode("AbstractButton"); DefaultMutableTreeNode jButton = new DefaultMutableTreeNode("JButton"); DefaultMutableTreeNode jMenuItem = new DefaultMutableTreeNode("JMenuItem"); DefaultMutableTreeNode jToggle = new DefaultMutableTreeNode("JToggleButton"); DefaultMutableTreeNode jLabel = new DefaultMutableTreeNode("JLabel"); DefaultMutableTreeNode etc = new DefaultMutableTreeNode("..."); // Group the nodes component.add(container); container.add(box); container.add(jComponent); jComponent.add(abstractButton); abstractButton.add(jButton); abstractButton.add(jMenuItem); abstractButton.add(jToggle); jComponent.add(jLabel); jComponent.add(etc); // Create a cell renderer // Pass the renderer on to the TreePanel constructor TreePanel tp = new TreePanel(component); Container content = getContentPane(); content.add(tp, BorderLayout.CENTER); } public static void main(String args[]) { TreeRender frame = new TreeRender("Tree Example"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); frame.setSize(WIDTH, HEIGHT); frame.setVisible(true); } }