收录日期:2019/03/27 11:18:49 时间:2016/05/18 06:54:55 标签:Java EE
用xml生成一个dom树,用JTree显示,如何让xml中部分元素(如tag名为aa的)不在树上显示?谢谢。
判断一下不就行了。
while(tagName!="aa")
    do Jtree....
这个...应该不行吧,能贴个例子吗?谢谢
是啊,在取node的时侯判断一下不就行了吗??
if(Element.getElementsByTagName("text").item(0).getFirstChild().getNodeValue()!="aa")

不过我不知道你说的转成jtree是怎么专的。
DefaultMutableTreeNode top =
    new DefaultMutableTreeNode("The Java Series");
createNodes(top);
final JTree tree = new JTree(top);

......

JScrollPane treeView = new JScrollPane(tree);
DefaultMutableTreeNode category = null;
DefaultMutableTreeNode book = null;

    category = new DefaultMutableTreeNode(
        "Books for Java Programmers");
    top.add(category);

    String value=getNodeValue();
    for(int i=0;i<value.length;i++)
    {
        if(value[i]!="aa")
       {
            book = new DefaultMutableTreeNode(new BookInfo
                (valu[i]);
            category.add(book);
        }
    }
.......

   public String[] getNodeValue()
   {   
     String filename="";
     String[] NodeName=null;
     try{
         SAXBuilder builder=new SAXBuilder();
         builder.build(filename);
         Document document=builder.build(filename);
         Element root=document.getRootElement();
         List children=root.getChildren();
         NodeName=new String[children.size()];
         
         for(int i=0;i<children.size();i++)
         {
            Object o=children.get(i);
            Element node=(Element)o;
            NodeName[i]=node.getName();         
         }
      }catch(Exception e)
       {
          System.err.println(e);
       }
      return NodeName;
   }

我的整棵树是用parse xml节点生成的model
    public synchronized void setRootNode(Node root) {

        // save root
        this.root = root;

        // clear tree and re-populate
        DefaultMutableTreeNode where = (DefaultMutableTreeNode)getRoot();
        where.removeAllChildren();
        nodeMap.clear();
        treeNodeMap.clear();

        buildTree(root, where);

        fireTreeStructureChanged(this, new Object[] { getRoot() }, new int[0], new Object[0]);

    } // setRootNode(Node)

然后通过构造方法
    public XmlTreeModel(Node node) {
        super(new DefaultMutableTreeNode());
        if (node!=null) {
            setRootNode(node);
        }
    }
把整棵树的model生成,再用setModel的方法把树生成的,请问该怎么办啊?
另外,我的xml文件是类似于这样的:
<form name="formname">
  <comp name="compname">
  </comp>
  <file name="filename">
  </file>
</form>
生成树之后,想让filetag不可见,并不是让它不存在,只是让它不可见。
我的方法也不是让file标签不存在,只是不添加到Jtree中,我用Jdom作为xml parser。
其实这是个简单的问题,不要复杂化,在添加到Jtree前做一个tagname的判断即可。
谢谢,那在我上面写的我的那种结构下要怎样做才行呢?
我都不知道你那些函数以及参数的含义: 
buildTree(root, where);
fireTreeStructureChanged(this, new Object[] { getRoot() }, new int[0], new Object[0]);

我想你应该在buildeTree函数中通过Node.getNodeName()来获取Node的值,
然后判断这个值是否符合要求,然后添加到tree中。
String nodeValue=root.getNodeName();
if(nodeValue!="value")
buildTree(root,where);
private void buildTree(Node node, MutableTreeNode where) {
        if (node == null) { return; }
        MutableTreeNode treeNode = insertNode(node, where);
    }

但是上面的root只是整个xml文件的根结点而已
很好,关注一下
要不你把全部代码贴出来吧,我帮你改改,
但有一点你应该明白,你需要学习找到问题的解决方法并自己解决。
谢谢,请问你有email吗?我回复了但是太长贴不了。
chenxi@linuxforum.net
gaochun@ec.necsi-sh.nec.com.cn
给我也来一个,帮你看看,如何
JTree仅仅是数据模型的一种表现形式。在创建你的模型的时候进行判断。
zh_xiao_f@sohu.com
我也想看看,麻烦你给我也发一个,我不胜感激,谢谢了!
我是为了学习一下的

编写一个返回字符串的dll函数!在线等待…… atof()的结果不是我所想,痛苦? 如何高亮显示richtextbox的行 OEM的问题 高分赠送,马上结贴,有谁知道db108 adsl modem 的(偶是泉州的)用户名跟密码呀 pb调用oracle存储过程 我写了一个向量和矩阵类,但有错误,请各位给看一下. 简单问题,请各位大虾看看,找不到工作库 请问在classwizard中创建新类与在insert重创建新类有区别吗? MenuItem myMenuItem=contextMenu1.MenuItems.Add(\"文件(&F)\");产生的菜单如何写事件。 问一个关于删除数据表的问题 netmeeting 可省电话费?有谁可知内情!! 怎么给textarea和赋初始值 我正想用random文件代替数据库,请熟悉数据库原理的大虾帮忙。 求助用asp实现注册和登陆!!!1 请Spectrum()进来 求救!请各位指点! 请问如何将一文本框中的数据存入到指定excel表中指定的单元格中?---小妹 文件列表 数据库连接不好使了,请大家帮帮忙!! 请Spectrum()进来 我妹妹高考,祝愿她考出好成绩。 如何恢复设置? 1、htm触发的asp在新窗体显示后,老htm文本框中的输入如何清空。2、如何调用存储过程 散分! 问一个简单问题! winxpPro可以加入域,但是? 我的VC技术网站!!! 请教新东方新概念英语中使用的swf文件格式 请Spectrum()进来