如何在jtree中插入根节点后自动打开子节点?

时间:2012-06-18 04:33:55

标签: java swing listener jtree expand

当我将子节点插入根节点时,根节点不会自动展开。

我希望在将子节点插入根节点后自动扩展根节点。

提前致谢..

1 个答案:

答案 0 :(得分:6)

没有默认的自动装置,您必须自己实施。几种可能性,都涉及注册到树模型的自定义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());