You just insert tree node to the original tree model, just like what you were doing before in a regular JTree.
Thanks,
Moderator: JIDE Support
/**
* This method inserts a new node dynamically into the tree.
* Since we only support 2 level tree...we accept 2 params.
*
* @param String
* @param String
*/
protected void insertNewTreeNode(String level1NodeStr, String level2NodeStr) {
//first we need to see if level1NodeStr already exists in the tree
TreeModel myTreeModel = checkBoxTree.getModel();
DefaultMutableTreeNode level1Node = findLevel1NodeInTree(level1NodeStr);
if (level1Node == null) {
//levelNodeStr doesn't exist in the tree.
//we need to add it to the root.
level1Node = new DefaultMutableTreeNode(level1NodeStr);
DefaultMutableTreeNode level2Node = new DefaultMutableTreeNode(level2NodeStr);
level1Node.add(level2Node);
DefaultMutableTreeNode root = (DefaultMutableTreeNode)myTreeModel.getRoot();
root.add(level1Node);
} else {
//add the level2NodeStr to the level1Node
DefaultMutableTreeNode level2Node = new DefaultMutableTreeNode(level2NodeStr);
level1Node.add(level2Node);
}
checkBoxTree.setModel(myTreeModel);
}
/**
* This method tries to find a level1Node in the tree.
*
* @return
*
*/
protected DefaultMutableTreeNode findLevel1NodeInTree(String nodeStr) {
DefaultMutableTreeNode node = null;
TreeModel myTreeModel = checkBoxTree.getModel();
Object root = myTreeModel.getRoot();
int rootChildCount = myTreeModel.getChildCount(root);
for (int i = 0; i < rootChildCount; i++) {
DefaultMutableTreeNode child = (DefaultMutableTreeNode)myTreeModel.getChild(root, i);
if (child.getUserObject().toString().compareToIgnoreCase(nodeStr) == 0) {
node = child;
break;
}
}
return node;
}
Return to JIDE Common Layer Open Source Project Discussion (Community Driven)
Users browsing this forum: No registered users and 10 guests