2015-04-16 25 views
2
tree.addTreeExpansionListener(new TreeExpansionListener() { 
     @Override 
     public void treeExpanded(TreeExpansionEvent event) { 
      DefaultMutableTreeNode node = (DefaultMutableTreeNode) event 
          .getPath().getLastPathComponent(); 
      node.removeAllChildren(); 
      //System.out.println(node.getChildCount()); 
      child = new DefaultMutableTreeNode("new node"); 
      node.add(child);; 

      frame.doLayout(); 
      frame.repaint(); 

     } 

     @Override 
     public void treeCollapsed(TreeExpansionEvent event) { 
      // TODO Auto-generated method stub 

     } 
    }); 
+1

您需要通知'TreeModel',像['JTree的#insertNodeInto'(HTTP://文檔.oracle.com/javase/7/docs/api/javax/swing/tree/DefaultTreeModel.html#insertNodeInto(javax.swing.tree.MutableTreeNode,%20javax.swing.tree.MutableTreeNode,%20int))和['TreeModel #removeNodeFromParent'](http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/DefaultTreeModel.html#removeNodeFromParent(javax.swing.tree.MutableTreeNode)),for [example]( http://stackoverflow.com/questions/22683092/jtree-avoid-collapse-after-reload/22683989#22683989) – MadProgrammer

+1

請參閱[文件瀏覽器GUI ](http://codereview.stackexchange.com/q/4446/7784)爲例。 –

回答