/**
* InfiniteBinaryTree
*
* <p> A little example program to show the power of the TreeModel interface.
* Running it displays a binary tree with numbers on each node.
* Every positive number can be found somewhere in the tree.
* See if you can find the one labeled 1000!
*
* @author Melinda Green - Superliminal Software
*/
import javax.swing.*;
import javax.swing.tree.*;
public class InfiniteBinaryTree implements TreeModel {
// these 5 lines contain all the logic
public Object getRoot() { return 1; }
public boolean isLeaf(Object node) { return false; }
public int getChildCount(Object parent) { return 2; }
public Object getChild(Object parent, int index) { return 2 * (Integer)parent + index; }
public int getIndexOfChild(Object parent, Object child) { return (Integer)child % 2; }
// stubbed out methods for example
public void addTreeModelListener(javax.swing.event.TreeModelListener l) {}
public void removeTreeModelListener(javax.swing.event.TreeModelListener l) {}
public void valueForPathChanged(TreePath path, Object newValue) {}
public static void main(String args[]) {
JScrollPane scroller = new JScrollPane(new JTree(new InfiniteBinaryTree()));
JFrame frame = new JFrame("Infinite Binary Tree");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(scroller);
frame.setSize(new java.awt.Dimension(400, 400));
frame.setVisible(true);
}
}