import java.util.Enumeration; import javax.swing.event.*; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.tree.*; /** * @version 1.0 2002-06-16 * @author Takashi KOBAYASHI */ public class memo09ex3 { JTree tree; public memo09ex3() { tree = new JTree( new DefaultMutableTreeNode( "SwingSwinging.com" ) ); TreeModel model = tree.getModel(); TreeNode root = (TreeNode)model.getRoot(); ( (DefaultMutableTreeNode)root ).add( new DefaultMutableTreeNode( "Column" ) ); ( (DefaultMutableTreeNode)root ).add( new DefaultMutableTreeNode( "Desktop Java" ) ); Enumeration enum = root.children(); DefaultMutableTreeNode node; while( enum.hasMoreElements() ) { node = (DefaultMutableTreeNode)enum.nextElement(); if( node.getUserObject().equals( "Column" ) ) { node.add( new DefaultMutableTreeNode( "JavaMemo" ) ); node.add( new DefaultMutableTreeNode( "Diary" ) ); } else if( node.getUserObject().equals( "Desktop Java" ) ) node.add( new DefaultMutableTreeNode( "Not ReadMe" ) ); } ( (DefaultTreeModel)model ).reload(); } public static void main( String[] args ) { memo09ex3 ex3 = new memo09ex3(); JFrame frame = new JFrame( "Create Tree" ); frame.getContentPane().add( ex3.tree ); ex3.tree.addTreeSelectionListener( new TreeSelectionListener(){ public void valueChanged( TreeSelectionEvent e ) { TreePath[] paths = e.getPaths(); for( int i = 0; i < paths.length; i++ ) if( e.isAddedPath( paths[i] ) ) { System.out.println( "Added New to Selection: " + paths[i].toString() ); Object[] objs = paths[i].getPath(); for( int j = 0; j < objs.length; j++ ) System.out.println( "Path Component: " + objs[j].getClass().getName() + ", Value: " + objs[j].toString() ); System.out.println( "LastPathComponent: " + paths[i].getLastPathComponent().getClass().getName() + ", Value: " + paths[i].getLastPathComponent().toString() ); System.out.println(); } } } ); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); frame.pack(); frame.setVisible( true ); } }