1

子ノードをルート ノードに挿入すると、ルート ノードが自動的に展開されません。

子ノードをルート ノードに挿入した後、ルート ノードを自動的に展開したいと考えています。

前もって感謝します..

4

1 に答える 1

6

デフォルトのautomaticsはありません。自分で実装する必要があります。いくつかの可能性があり、すべてツリーのモデルに登録されたカスタム TreeModelListener が関係しています。リスナーは、treeNodesInserted の受信時に動作します

  • JTree を手動でパスに展開します
  • 選択をパスに設定します (expandsSelectedPaths プロパティがデフォルトの true の場合、暗黙的にツリーを展開します)

コードスニペット:

class MyTreeModelListener implements TreeModelListener {

     public void treeNodesInserted(TreeModelEvent e) {
          // first option
          myTree.expandPath(e.getPath());
          // second option
          myTree.setSelectionPath(e.getPath());
     }

     // empty implementation of other listener methods
     ...
} 

// usage
myTree.getModel().addTreeModelListener(new MyTreeModelListener());
于 2012-06-18T11:21:49.290 に答える