TITLE:JTreeのソート
#navi(../)
RIGHT:Posted by &author(aterai); at 2009-05-04
*JTreeのソート [#d8f8e60e]
JTreeをソートします。[http://forums.sun.com/thread.jspa?threadID=566391 Swing - How to sort jTree Nodes]からの引用です。

-&jnlp;
-&jar;
-&zip;

//#screenshot
#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTThR240sI/AAAAAAAAAkg/h3mIbDu9xa4/s800/SortTree.png)

**サンプルコード [#p11c3166]
#code(link){{
//Swing - How to sort jTree Nodes>http://forums.sun.com/thread.jspa?threadID=566391
public static DefaultMutableTreeNode sortTree(DefaultMutableTreeNode root) {
  for(int i=0;i<root.getChildCount();i++) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) root.getChildAt(i);
    String nt = node.getUserObject().toString();
    for(int j=0; j<i; j++) {
      DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) root.getChildAt(j);
      String np = prevNode.getUserObject().toString();
      if(nt.compareToIgnoreCase(np)<0) {
        root.insert(node, j);
        root.insert(prevNode, i);
      }
    }
    if(node.getChildCount() > 0) node = sortTree(node);
  }
  return root;
}
}}

**解説 [#n25f3e6d]
上記のサンプルでは、チェックボックスをクリックするとJTreeを%%降順%% 昇順でソートするようになっています。
元のソート無しの状態に戻す場合は、DefaultTreeModelを作成し直しています。

**参考リンク [#g127d784]
-[http://forums.sun.com/thread.jspa?threadID=566391 Swing - How to sort jTree Nodes]
--#6のHamedさんの投稿

**コメント [#lff287f1]
#comment