import javax.swing.* ; import javax.swing.tree.* ; public class GenealogyTree extends JTree { GenealogyModel model ; public GenealogyTree(Person graphNode) { super(new GenealogyModel(graphNode)) ; getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION) ; DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); Icon personIcon = null; renderer.setLeafIcon(personIcon); renderer.setClosedIcon(personIcon); renderer.setOpenIcon(personIcon); setCellRenderer(renderer); } /** * Get the selected item in the tree, and call showAncestor with this * item on the model. */ public void showAncestor(boolean b) { Object newRoot=null ; TreePath path=getSelectionModel().getSelectionPath() ; if (path!=null) newRoot=path.getLastPathComponent() ; ((GenealogyModel)getModel()).showAncestor(b,newRoot) ; } }