TreeModel is an interface and DefaultTreeModel implements it.What's your problem again?

解决方案 »

  1.   

    以下是我的TreeModel的类:
    package xj.guieditor;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.tree.*;
    import org.w3c.dom.*;
    import java.io.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2002</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */public class MyTreeModel implements TreeModel {
      private Document root;  public MyTreeModel(Document doc){
        root = doc;
      }
      public Object getRoot() {
        return root;
      }
      public Object getChild(Object parent, int index) {
        return ((Node)parent).getChildNodes().item(index);
      }
      public int getChildCount(Object parent) {
        return ((Node)parent).getChildNodes().getLength();
      }
      public boolean isLeaf(Object node) {
        return ((Node)node).getChildNodes().getLength() == 0;
      }
      public void valueForPathChanged(TreePath path, Object newValue) {  }
      public int getIndexOfChild(Object parent, Object child) {
        NodeList nl = ((Node)parent).getChildNodes();
        for(int i=0; i< nl.getLength(); i++)
          if( ((Node)child).equals(nl.item(i)) )
            return i;
        return -1;
      }
      public void addTreeModelListener(TreeModelListener l) {  }
      public void removeTreeModelListener(TreeModelListener l) {  }
    };
    在我的主程序中,我是这样生成树的:
    DOMParser parser = new DOMParser();        String uri = filename;
            try{
                parser.setIncludeIgnorableWhitespace(true);
                this.setTitle("The current file is: " + uri);
                parser.parse(uri);
                Document doc = parser.getDocument();
                doc.normalize();
                removeWhiteSpaceNodes(doc.getDocumentElement());
                model = new MyTreeModel(doc);
                tree = new JTree(model);
    然而,我的程序中想对这课树的节点进行添加子(兄弟)节点和删除当前节点的操作,我需要用到DefaultTreeModel中removeNodeFromParent等方法,我该怎样做?谢谢
      

  2.   

    这样做可以吗?我怀疑javax.swing.tree.Node和dom中的Node可以通用吗?
      

  3.   

    可以的呀,目前我的程序是正常的,要不你给我个信箱,我把程序打包给你看看?或者你能不能告诉我如何直接用DefaultTreeModel来建立xml文件的jtree啊?我不太会用,谢谢。