繁体   English   中英

单个JTable单元中的Java显示元素

[英]Java display elements within a single JTable Cell

我正在尝试制作自己的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文档中每个部门的列表元素数量相同时。 但是我需要使它具有所需的尽可能多的列表元素。

如果有人能指出正确的方向,将不胜感激,我在google上到处都有,并提出了相应的代码。 我尝试了多个数组列表,但是无法使其在JTable中正确排序。

非常感谢! Alpaxj

您可能可以执行以下操作:

 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);

希望这就是您想要的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM