我做的这个是tree的可以自行增加、删除与修改节点的程序,在增加部分有个问题不明白~,大家看看关键代码部分:
    public void addButton_actionPerformed(ActionEvent e) {
          DefaultMutableTreeNode dmtn = new DefaultMutableTreeNode("新节点");
          TreePath treePath = jTree1.getSelectionPath();
          DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)
                                             treePath.getLastPathComponent();
          treeNode.insertNodeInto(dmtn,treeNode.getChildCount());
          jTree1.scrollPathToVisible(new TreePath(dmtn.getPath()));
    }
为什么这样的新增加节点只可以是一个??就是说我按了按扭第一次可以增加,但第二次按就没反应了,而我改了用DefaultTreeModel来增加问题就解决了,为什么?看看下面代码:
   public void addButton_actionPerformed(ActionEvent e) {
          DefaultMutableTreeNode dmtn = new DefaultMutableTreeNode("新节点");
          TreePath treePath = jTree1.getSelectionPath();
          DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)
                                              treePath.getLastPathComponent();
          ///////dtm是我前面添加的DefaultTreeModel的实例
          dtm.insertNodeInto(dmtn,treeNode,treeNode.getChildCount());
          jTree1.scrollPathToVisible(new TreePath(dmtn.getPath()));
    }
这样问题就解决了~~为什么一定要用model???不用可以吗??请高手说说Model的用处和说说为什么我第一个程序这样写不行,谢谢,再线等待~~

解决方案 »

  1.   

    JTree 只是一个框架,不包含任何数据,它必须和TreeModel联系起来,才能显示TreeModel里的数据
      

  2.   

    你可以说明白一点吗?一定要和treemodel联系??为什么创建只用defaultmutabletreemodel来创建也可以??
      

  3.   

    public class DefaultTreeModel extends Object implements Serializable, TreeModelDefaultTreeModel 实现了 TreeModel 接口,可以用 DefaultTreeModel。JTree.setModel(TreeModel newModel) 方法设置提供数据的 TreeModel。
      

  4.   

    当要显示的数据发生变化的时候,不用model很麻烦。