gpt4 book ai didi

Java 在单个 JTable 单元格中显示元素

转载 作者:行者123 更新时间:2023-12-02 05:37:31 24 4
gpt4 key购买 nike

我正在尝试制作自己的 XML 编辑器,并使用 JTable 来显示 XML 节点。但是,我有以下 XML:

<Department id="A">
<DeptCode>Example1</DeptCode>
<DeptName>Example2</DeptName>
<li>List1</li>
<li>List2</li>
<li>List3</li>
<li>List4</li>
<li>List5</li>
<li>-Point</li>
</Department>
<Department id="B">
<DeptCode>Example1</DeptCode>
<DeptName>Example2</DeptName>
<li>List1</li>
<li>List2</li>
<li>List3</li>
<li>List4</li>
</Department>

...等等。

我如何在单个单元格内的不同行(在 JTable 中)上显示每个部门的“li”元素?希望这是有道理的!

我能得到的最接近的是:

NodeList getElementTagName_LI = doc.getElementsByTagName("li");
NodeList getElementTagName_dept = doc.getElementsByTagName("Department");
//GET DEPARTMENTS
for (int a = 0; a < getElementTagName_dept.getLength(); a++) {
org.w3c.dom.Node allElements_dept = getElementTagName_dept.item(a);

if (allElements_dept.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
org.w3c.dom.Element eElement = (org.w3c.dom.Element) allElements_dept;
departmentID = eElement.getAttribute("id").toString();
deptCode = eElement.getElementsByTagName("DeptCode").item(0).getTextContent().toString();
deptName = eElement.getElementsByTagName("DeptName").item(0).getTextContent().toString();
//Get Each XML List Element
li = eElement.getElementsByTagName("li").item(0).getTextContent().toString();
li1 = eElement.getElementsByTagName("li").item(1).getTextContent().toString();
li2 = eElement.getElementsByTagName("li").item(2).getTextContent().toString();
li3 = eElement.getElementsByTagName("li").item(3).getTextContent().toString();
li4 = eElement.getElementsByTagName("li").item(4).getTextContent().toString();

}
//Insert the XML Node Values within the JTable.
dept_TableModel.insertRow(0, new Object[]{departmentID});
dept_TableModel.setValueAt(deptCode, 0, 1);
dept_TableModel.setValueAt(deptName, 0, 2);
dept_TableModel.setValueAt(li+li1+li2+li3+li4, 0, 3);
}

只有当每个部门的 XML 文档中有相同数量的列表元素时,它才有效。但我需要使它能够具有所需数量的列表元素。

如果有人能指出我正确的方向,我将不胜感激,我已经在谷歌上到处查找并为此提出了代码。我尝试了多个数组列表,但无法让它在 JTable 中正确排序。

非常感谢!阿尔帕克斯j

最佳答案

你可能可以这样做:

 String listLi = "";

for(int i = 0; i < eElement.getElementsByTagName("li").getLength(); i++)
listLi += eElement.getElementsByTagName("li").item(i).getTextContent().toString();

然后

 dept_TableModel.setValueAt(listLi, 0, 3);

希望这就是您正在寻找的!

关于Java 在单个 JTable 单元格中显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24829267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com