Netbeans:如何动态地填充JTree



我正在使用NetBeans用Java开发一个小型桌面应用程序。在某些时候,我需要从XML文件中读取数据,读取后,我需要将其存储在我的自定义类的对象。我成功地完成了上面提到的任务(即读取XML数据并将该数据存储在自定义类的对象中)。现在我想用这个对象填充一个JTree。假设我的XML是这样的:

<Employees>
    <Classification type="permanent">
        <Emp>
            <name>Emp1_Name<name/>
        </Emp>
        <Emp>
            <name>Emp2_Name<name/>
        </Emp>    </Classification>
    <Classification type="part time">
        <Emp>
            <name>Emp1_Name<name/>
        </Emp>
        <Emp>
            <name>Emp2_Name<name/>
        </Emp>    </Classification>
    </Classification>
</Employees>

现在我想让我的树看起来像这样

Employees
    Permanent Employees
        Emp1_Name
        Emp2_Name
    Part Time Employees
        Emp1_Name
        Emp2_Name

这可能对您有用:

http://www.arsitech.com/xml/jdom_xml_jtree.php

http://www.wsoftware.de/SpeedJG/XMLTreeView.html

代码摘自:Java:如何在JTree中显示XML文件

public JTree build(String pathToXml) throws Exception {
     SAXReader reader = new SAXReader();
     Document doc = reader.read(pathToXml);
     return new JTree(build(doc.getRootElement()));
}
public DefaultMutableTreeNode build(Element e) {
   DefaultMutableTreeNode result = new DefaultMutableTreeNode(e.getText());
   for(Object o : e.elements()) {
      Element child = (Element) o;
      result.add(build(child));
   }
   return result;         
}

您需要编写函数来获取应用程序对象的信息,您可以为此使用SAX或DOM解析器

    DefaultMutableTreeNode root = new DefaultMutableTreeNode()
    Object object = //function to fetch the information of your Object
// if you are storing all objects in a vector then read element of object
    root.add((DefaultMutableTreeNode)object)

相关内容

  • 没有找到相关文章

最新更新