import java.util.Hashtable; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.event.*; import javax.swing.tree.*; /** * @version 1.0 2002-07-07 * @author Takashi KOBAYASHI */ public class memo09ex3 { public static void main( String[] args ) { Hashtable root = new Hashtable(), nodes1, nodes2; root.put( "SwingSwinging.com", ( nodes1 = new Hashtable() ) ); nodes1.put( "Column", ( nodes2 = new Hashtable() ) ); nodes2.put( "JavaMemo", "JavaMemo" ); nodes2.put( "Diary", "Diary" ); nodes1.put( "Desktop Java", ( nodes2 = new Hashtable() ) ); nodes2.put( "Not Readme", "Not Readme" ); final JTree tree = new JTree( root ); tree.addTreeExpansionListener( new TreeExpansionListener(){ public void treeExpanded( TreeExpansionEvent event ) { printExpandedNode(); } public void treeCollapsed( TreeExpansionEvent event ) { printExpandedNode(); } private void printExpandedNode() { System.out.println( "Print Expanded Node..." ); TreePath path; for( int i = 0; i < tree.getRowCount(); i++ ) { path = tree.getPathForRow( i ); if( tree.isExpanded( path ) ) System.out.println( path.toString() ); } System.out.println(); } } ); JFrame frame = new JFrame( "memo09ex3" ); frame.getContentPane().add( tree ); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); frame.pack(); frame.setVisible( true ); } }