TITLE:JTreeのソート

Posted by terai at 2009-05-04

JTreeのソート

JTreeをソートします。Swing - How to sort jTree Nodesからの引用です。

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

//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;
}

解説

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

参考リンク

コメント