简体   繁体   English

文件夹在jtree中排序

[英]folder sort in jtree

Is there a way to sort an already created tree having only root(DefaultMutableTreeNode)? 有没有一种方法可以对已经创建的仅具有根(DefaultMutableTreeNode)的树进行排序? It has folders and files in random order(With ierarchy). 它具有随机顺序的文件夹和文件(带有等级)。 Is it possible to show folders on top of files in alphabetical order? 是否可以按字母顺序在文件顶部显示文件夹?

You can achieve using below recursive method, 您可以使用下面的递归方法来实现,

public static DefaultMutableTreeNode sortTree(DefaultMutableTreeNode root) {
    {
        for (int i = 0; i < root.getChildCount() - 1; i++) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) root
                    .getChildAt(i);
            String nt = node.getUserObject().toString();

            for (int j = i + 1; j <= root.getChildCount() - 1; j++) {
                DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) root
                        .getChildAt(j);
                String np = prevNode.getUserObject().toString();

                System.out.println(nt + " " + np);
                if (nt.compareToIgnoreCase(np) > 0) {

                    root.insert(node, j);
                    break;
                }
            }
            if (node.getChildCount() > 0) {
                node = sortTree(node);
            }
        }

        return root;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM