I found some details on the internet for this problem but the solution does not seem to work.
I want to be able to expand all the nodes ( including the leaf nodes ) of a JTree
. This is the code I have so far.
tree = new JTree(treeModel);
tree.setShowsRootHandles(true);
tree.setEditable(true);
tree.addTreeSelectionListener(treeSelectionListener);
tree.addMouseListener(mouselistener);
tree.setCellRenderer(new FileCellRenderer());
for (int i = 0; i < tree.getRowCount(); i++) {
tree.expandRow(i);
}
This however does not expand all the leaf nodes. What I get is IMAGE A but what I want is IMAGE B:
Use a recursive call, as in the following sample:
private void expandAllNodes(JTree tree, int startingIndex, int rowCount){
for(int i=startingIndex;i<rowCount;++i){
tree.expandRow(i);
}
if(tree.getRowCount()!=rowCount){
expandAllNodes(rowCount, tree.getRowCount());
}
}