Io implemento l'interfaccia TreeModel attraverso un classe.Poi istanzio la classe JTree e gli passo
il TreeModel.Posto questo esempio:
codice:
public class InfiniteBinaryTree implements TreeModel {
public Object getRoot() {
return new Integer(1); // start at node number 1
}
public int getChildCount(Object parent) {
return 2; // because its a binary tree
}
public Object getChild(Object parent, int index) {
return new Integer(2 * valueOf(parent) + index); // the magic formula
}
public int getIndexOfChild(Object parent, Object child) {
return valueOf(child) % 2; // odd number == first child, even == second
}
public boolean isLeaf(Object node) {
return false; // an infinite number of internal nodes and no leaves!
}
// stubbed out methods not needed for display though for any real
// application at least the listener methods should be implemented.
public void addTreeModelListener(javax.swing.event.TreeModelListener l) {}
public void removeTreeModelListener(javax.swing.event.TreeModelListener l) {}
public void valueForPathChanged(TreePath path, Object newValue) {}
// helper function
private int valueOf(Object obj) {
return ((Integer)obj).intValue();
}
/**
* Creates a JTree from an InfiniteBinaryTree model and displays it.
*/
public static void main(String args[]) {
JTree binTree = new JTree(new InfiniteBinaryTree());
binTree.setShowsRootHandles(true);
JFrame frame = new JFrame("Infinite Binary Tree");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new JScrollPane(binTree));
frame.setSize(new java.awt.Dimension(400, 400));
frame.setVisible(true);
}
}
Adesso i metodi nel main non vengono richiamati ma comunque funzionano.Cioè come si fa a capire quando e quali i metodi devono essere richiamati?Non so se sto dicendo cavolate o meno..