Toon posts:

[Java] JTable en vectors

Pagina: 1
Acties:

Verwijderd

Topicstarter
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:

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!

  • Down
  • Registratie: Februari 2005
  • Laatst online: 29-11 22:34
Volgens mij draai je de parameters van de JTable om en moet columnNames als tweede argument worden meegegeven..

[ Voor 9% gewijzigd door Down op 02-07-2007 23:20 ]

Mother north, how can they sleep while their beds are burning?


Verwijderd

Topicstarter
OMG! Je heb gelijk |:( dan klopt de tutorial van sun dus niet http://java.sun.com/docs/...omponents/table.html#data en NetBeans geeft het ook verkeerd aan. Bedankt!

  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
In die tutorial waar je naar linkt staat het echt gewoon goed in het voorbeeld...