我正在使用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)