سلام من یه فایل xml دارم که میخوام توی jtable نمایشش بدم البته نه از طریق کلاس بلکه توی gui یه فرم ساختم بهش یه jtable اضافه کردم ولی هر کاری میکنم دیتایی که توی xml دارم توی تیبل توی فرمم نمایش داده نمیشه
این کد توی فرمم هستش:
public File xml = null;
public Document dom = null;
public DefaultTableModel model;
public Document parseFile(File file) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
dom = (Document) builder.parse(file);
} catch (Exception e) {
e.printStackTrace();
}
return dom;
}
public Object getArticleInfo(String tagName, Element elem) {
NodeList list = elem.getElementsByTagName(tagName);
for (int i = 0; i < list.getLength(); ++i) {
Node node = (Node) list.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Node child = (Node) node.getFirstChild();
return child.getTextContent().trim();
}
return null;
}
return null;
}
public void insertTableRows(DefaultTableModel tableModel, Document doc) {
Element root = doc.getDocumentElement();
NodeList list = root.getElementsByTagName("article");
for (int i = 0; i < list.getLength(); ++i) {
Element e = (Element) list.item(i);
if (e.getNodeType() == Element.ELEMENT_NODE) {
Object[] row = {getArticleInfo("author", e), getArticleInfo("headline", e), getArticleInfo("email", e)};
tableModel.addRow(row);
}
}
tableModel.fireTableStructureChanged();
tableModel.fireTableDataChanged();
}
public void DefaultXMLTableModel() {
xml = new File(System.getProperty("user.dir") + File.separator + "rowdata.xml");
model = new DefaultTableModel() {
public boolean isCellEditable(int row, int column) {
return false;
}
};
model.addColumn("Author");
model.addColumn("Headline");
model.addColumn("Email");
jTable2 = new JTable(model);
jTable2.setGridColor(Color.blue);
jTable2.setShowGrid(true);
if (xml.exists() && xml.length() != 0) {
dom = parseFile(xml);
insertTableRows(model, dom);
}
}
این هم کد فایل xml هستش:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<article>
<headline>First headline</headline>
<author>First author</author>
<email>author_no1@someauthor.com</email>
</article>
<article>
<headline>Second headline</headline>
<author>Second author</author>
<email>author_no2@anotherauthor.com</email>
</article>
<article>
<headline>Maysam</headline>
<author>Soleymani</author>
<email>maysam.soleymani@gmail.com</email>
</article>
</root>