Servus Leute,
ich wollte mich als erstes einaml für diese super Forum bedanken. Es hat mir bis jetzt immer sehr weitergeholfen. Jetzt stehe ich leider vor einem Problem, wo ich einfach nicht weiter komme. Vielleicht könnt ihr mir ja helfen.
Mein Problem:
Es geht darum, daß ich Daten aus einem JTable herausholen möchte und in eine XML-Datei speichern möchte. Das funktioniert auch schon ganz gut. Nur leider bekomme ich immer die selben Artikel in der XML-Datei. Ich habe aber z.B. 3 unterschiedliche Artikel. Es steht aber dreimal der selbe drin.
So füge ich die Daten in eine ArrayList:
javax.swing.table.TableModel model = jTable1.getModel();
ArrayList artikelListe = new ArrayList();
String[] singleArtikel = new String[5];
for(int i = 0 ; i < jTable1.getRowCount(); i++){
singleArtikel[0] = model.getValueAt(i,0).toString();
singleArtikel[1] = model.getValueAt(i,1).toString();
singleArtikel[2] = model.getValueAt(i,2).toString();
singleArtikel[3] = model.getValueAt(i,3).toString();
singleArtikel[4] = model.getValueAt(i,4).toString();
artikelListe.add(i, singleArtikel);
}
angebot_main_frame.saveAngebotXML(artikelListe, file);
Anschliessend hole ich mir die Daten wie folgt zurück:
public void saveAngebotXML(ArrayList offerArticles, File file){
try{
if(file.exists() == false){
file.createNewFile();
}
Document doc = new Document();
Element rootElement = new Element("root");
doc.setRootElement(rootElement);
for(int i = 0; i < offerArticles.size(); i++){
Element childElement = new Element("article");
childElement.setAttribute("Nr.", String.valueOf(i));
rootElement.addContent(childElement);
String[] article = (String[]) offerArticles.get(i);
//System.out.println(offerArticles.get(i));
Element child1Element = new Element("articlenumber");
child1Element.addContent(article[0].toString());
childElement.addContent(child1Element);
Element child2Element = new Element("Bezeichnung");
child2Element.addContent(article[1].toString());
childElement.addContent(child2Element);
Element child3Element = new Element("EK-Netto");
child3Element.addContent(article[2].toString());
childElement.addContent(child3Element);
Element child4Element = new Element("VK-Netto");
child4Element.addContent(article[3].toString());
childElement.addContent(child4Element);
Element child5Element = new Element("Langtext");
child5Element.addContent(article[4].toString());
childElement.addContent(child5Element);
}
XMLOutputter outputter = new XMLOutputter(" ", true);
FileOutputStream output = new FileOutputStream(file);
outputter.output(doc, output);
}
catch(IOException ef){ef.printStackTrace();}
Es scheind so als ob das "String[] article = (String[]) offerArticles.get(i);" in der Schleife nicht richtig aktualisiert wird. Ich komme da aber nicht weiter.
Ich habe auch noch keine richtige Möglichkeit gefunden die Objekte aus der ArrayList wieder zurück in ein StringArray zu stecken. Ist das so überhaupt richtig ?
Der Part mit dem XML funktioniert auch hervorragend.(Hab ich auch aus dem Forum
)
Vielen Dank schon im voraus.
ich wollte mich als erstes einaml für diese super Forum bedanken. Es hat mir bis jetzt immer sehr weitergeholfen. Jetzt stehe ich leider vor einem Problem, wo ich einfach nicht weiter komme. Vielleicht könnt ihr mir ja helfen.
Mein Problem:
Es geht darum, daß ich Daten aus einem JTable herausholen möchte und in eine XML-Datei speichern möchte. Das funktioniert auch schon ganz gut. Nur leider bekomme ich immer die selben Artikel in der XML-Datei. Ich habe aber z.B. 3 unterschiedliche Artikel. Es steht aber dreimal der selbe drin.
So füge ich die Daten in eine ArrayList:
javax.swing.table.TableModel model = jTable1.getModel();
ArrayList artikelListe = new ArrayList();
String[] singleArtikel = new String[5];
for(int i = 0 ; i < jTable1.getRowCount(); i++){
singleArtikel[0] = model.getValueAt(i,0).toString();
singleArtikel[1] = model.getValueAt(i,1).toString();
singleArtikel[2] = model.getValueAt(i,2).toString();
singleArtikel[3] = model.getValueAt(i,3).toString();
singleArtikel[4] = model.getValueAt(i,4).toString();
artikelListe.add(i, singleArtikel);
}
angebot_main_frame.saveAngebotXML(artikelListe, file);
Anschliessend hole ich mir die Daten wie folgt zurück:
public void saveAngebotXML(ArrayList offerArticles, File file){
try{
if(file.exists() == false){
file.createNewFile();
}
Document doc = new Document();
Element rootElement = new Element("root");
doc.setRootElement(rootElement);
for(int i = 0; i < offerArticles.size(); i++){
Element childElement = new Element("article");
childElement.setAttribute("Nr.", String.valueOf(i));
rootElement.addContent(childElement);
String[] article = (String[]) offerArticles.get(i);
//System.out.println(offerArticles.get(i));
Element child1Element = new Element("articlenumber");
child1Element.addContent(article[0].toString());
childElement.addContent(child1Element);
Element child2Element = new Element("Bezeichnung");
child2Element.addContent(article[1].toString());
childElement.addContent(child2Element);
Element child3Element = new Element("EK-Netto");
child3Element.addContent(article[2].toString());
childElement.addContent(child3Element);
Element child4Element = new Element("VK-Netto");
child4Element.addContent(article[3].toString());
childElement.addContent(child4Element);
Element child5Element = new Element("Langtext");
child5Element.addContent(article[4].toString());
childElement.addContent(child5Element);
}
XMLOutputter outputter = new XMLOutputter(" ", true);
FileOutputStream output = new FileOutputStream(file);
outputter.output(doc, output);
}
catch(IOException ef){ef.printStackTrace();}
Es scheind so als ob das "String[] article = (String[]) offerArticles.get(i);" in der Schleife nicht richtig aktualisiert wird. Ich komme da aber nicht weiter.
Ich habe auch noch keine richtige Möglichkeit gefunden die Objekte aus der ArrayList wieder zurück in ein StringArray zu stecken. Ist das so überhaupt richtig ?
Der Part mit dem XML funktioniert auch hervorragend.(Hab ich auch aus dem Forum

Vielen Dank schon im voraus.