Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 完全展开Jtree的所有节点(包括子节点)_Java_Swing_Jtree - Fatal编程技术网

Java 完全展开Jtree的所有节点(包括子节点)

Java 完全展开Jtree的所有节点(包括子节点),java,swing,jtree,Java,Swing,Jtree,我在网上找到了这个问题的一些细节,但解决方案似乎不起作用 我希望能够展开JTree的所有节点(包括叶节点)。这是我目前掌握的代码 tree = new JTree(treeModel); tree.setShowsRootHandles(true); tree.setEditable(true); tree.addTreeSelectionListener(treeSelectionListener); tree.addMouseListener(mous

我在网上找到了这个问题的一些细节,但解决方案似乎不起作用

我希望能够展开
JTree
的所有节点(包括叶节点)。这是我目前掌握的代码

    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);
        }
tree=newjtree(treeModel);
tree.setShowsRootHandles(真);
tree.setEditable(true);
addTreeSelectionListener(treeSelectionListener);
树。addMouseListener(mouselistener);
setCellRenderer(新的FileCellRenderer());
对于(int i=0;i
但是,这不会展开所有叶节点。我得到的是图像A,但我想要的是图像B


使用递归调用,如以下示例所示:

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());
    }
}
private void expandAllNodes(JTree-tree,int-startingIndex,int-rowCount){

对于(int i=startingIndex;i您有SSCCE吗?对于我来说,它应该可以工作。只要树的深度不超过2,它就可以工作。第7行缺少JTree参数。将
expandAllNodes(rowCount,tree.getRowCount());
更改为
expandAllNodes(tree,rowCount,tree.getRowCount());