Hallo,
Ik ben aan het stoeien met java, ik wil een xml bestand uitlezen en die weergeven in een JTable. Het xml bestand ziet er ongeveer als volgend uit:
Vervolgens heb ik een class xmlDocument die de betreffende document opent, deze bevat de onderstaande functie die door <leden> heen loopt, vervolgens door de attributen van elk <lid> en die opslaat in de vector. Dit gaat allemaal zoals het hoort.
Nu wil ik deze data koppelen aan een JTable, bijvoorbeeld:
Maar ik krijg de melding dat (regel 7 bovenstaande code):
java.lang.String cannot be cast to java.util.Vector
Heeft iemand een idé wat ik fout doe? Het is vast heel simpel, maar java is nog vrij nieuw voor me. Bedankt!
Ik ben aan het stoeien met java, ik wil een xml bestand uitlezen en die weergeven in een JTable. Het xml bestand ziet er ongeveer als volgend uit:
code:
1
2
3
4
5
6
7
8
9
| <?xml version='1.0' encoding='utf-8'?>
<leden>
<lid id="1" name="lid 1"></lid>
<lid id="2" name="lid 2"></lid>
<lid id="3" name="lid 3"></lid>
<lid id="4" name="lid 4"></lid>
<lid id="5" name="lid 5"></lid>
<lid id="6" name="lid 6"></lid>
</leden> |
Vervolgens heb ik een class xmlDocument die de betreffende document opent, deze bevat de onderstaande functie die door <leden> heen loopt, vervolgens door de attributen van elk <lid> en die opslaat in de vector. Dit gaat allemaal zoals het hoort.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| public Vector getAll() {
Vector<Vector> data = new Vector<Vector>();
Element root = _document.getRootElement();
// iterate through child elements of root
for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
// create attribute collection
Vector<String> col = new Vector<String>();
// iterate through attributes of element
for ( Iterator j = element.attributeIterator(); j.hasNext(); ) {
Attribute attribute = (Attribute) j.next();
//add element
col.addElement(attribute.getText());
}
// add attributes
data.addElement(col);
}
return data;
} |
Nu wil ik deze data koppelen aan een JTable, bijvoorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
| private void setKlantTable() {
xmlDocument d = new xmlDocument("leden.xml");
Vector<String> columnNames = new Vector<String>();
columnNames.addElement("id");
columnNames.addElement("naam");
JTable tblKlanten = new JTable(columnNames, d.getAll());
JScrollPane scrollPane = new JScrollPane(tblKlanten);
pnlKlantReg.add(scrollPane);
} |
Maar ik krijg de melding dat (regel 7 bovenstaande code):
java.lang.String cannot be cast to java.util.Vector
Heeft iemand een idé wat ik fout doe? Het is vast heel simpel, maar java is nog vrij nieuw voor me. Bedankt!