making a list from XML to add to jTable



Hello i'm trying to put Values from my XML file to a table but it says that the length of the list ist 0.



package TableTest;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import org.jdom2.Element;

public class JTableDemo extends JFrame {

JTable table;
DefaultTableModel model;
List<TableData> data = new ArrayList<>();

public static void main(String[] args) {
// Die Namen der Columns
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
new JTableDemo().setVisible(true);
}
});

}

public JTableDemo() {
// Per Xml datei laden
List list = XmlData.instance.getRootElement().getChildren("Entity");

System.out.println("Die größe ist: " + list.size());

for (int i = 0; i < list.size(); i++) {
Element e = (Element) list.get(i);

System.out.println(i + " von " + e.getChildText("Name") + " " + e.getChildText("Art") + " " + e.getChildText("Datum"));
data.add(new TableData(e.getChildText("Name"), e.getChildText("Art"), e.getChildText("Datum")));
}

Item i1 = new Item("Test", "Hi");
Item i2 = new Item("Test1", "Hi");
Item i3 = new Item("Test2", "Hi");

// Spalten Überschrift
String[] titles = new String[]{"Name", "Art", "Datum"};

model = new DefaultTableModel(titles, 0);

table = new JTable(model);

// Items Model hinzufügen
model.addRow(i1.getItem());
model.addRow(i2.getItem());
model.addRow(i3.getItem());

// ###### //
setTitle("Demo");

getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(500, 500));
setMinimumSize(getPreferredSize());
setMaximumSize(getPreferredSize());

}

private class Item {

Vector<String> name;
Vector<String> type;

// ####### //
public Item(String name, String type) {
this.type = new Vector<>();
this.name = new Vector<>();
this.name.add(name);
this.type.add(type);
}

// Gibt das Item zurück
public Vector getItem() {
Vector i = new Vector();

i.add(name);
i.add(type);

return i;
}

}

}


The test items i created i1, i2 and so on are shown in the table but i need to put this XML values in an Item to add it to my table, i cant make a custom model because the deadline is soon and the problem occured some minutes ago.



<?xml version="1.0" encoding="UTF-8"?>
<app>
<!-- Pfad für Templates und speicher ort für die Entity.java-->
<Entity>
<Name>Buchung</Name>
<Art>0</Art>
<Datum>Wed Nov 19 11:25:20 CET 2014</Datum>
</Entity>
</app>

No comments:

Post a Comment