收录日期:2018/12/11 04:24:42 时间: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
我也想看看,麻烦你给我也发一个,我不胜感激,谢谢了!
我是为了学习一下的

javabean的类 文件到底怎么放?谢谢! jsp页面上能不能使用泛性编程 谁解释一下这段代码? *******一个问题******* 结构体问题 如何在客户端获得datagrid选中的行中某一列的值?? 程序员有年龄限制没有? 行转列的问题? 我在网上看到无组件上传的代码,怎么样让上传后的文件地址自动填写在里面 要指定某个索引来查询怎么写啊 学C++和VC疑问 HELP 关于vs2005的登录验证,请教 帮帮我吧 求你们咯 我是新人 才学 米有积分哦 一个GDI+图象显示特技问题 怎样将计算结果显示在屏幕? 我想学C++builder,请问我应该看什么C++builder方面的书,好像这方面的书很少,请大家推荐几本! WebBrowser 问题,急呀... 为什么Acess数据库加密码后使用ADO连接不上,请教 exe4j怎么用 asp.net网站后台求助(快,哪个大侠解决了这个问题,我剩下的50分全给他了!) VC 转 Delphi 的问题 动态规划法能求得全局最优解吗? 使用Twebbrowser无法提取ASP.NET的ASP.NET_SessionId值.. 虚方法与抽象方法有什么区别? 问个TCP并发连接的面试题,谢谢。 如何能实现这样的效果 如何设置DBGrid的行的高度? 用swt如何实现窗口的慢慢弹出效果,类似MSN收到消息时升起的提示框那样的 如何检测页面上是否存在某名称的标签,如: