Hallo allerseits, es geht um folgendes: Ich habe ein Programmchen erstellt das mir Daten einer URL via DOM parser ausliest und diese in eine Tabelle schreibt. Soweit funktioniert auch alles, nur ist die ausgabe der Tabbelle komlett durcheinander ich hätte gerne einfach 5 Spalten die " Linie, Ziel, Platz, HF und Zeit" heißen und die jeweils dazugehörigen Tags auch in deren Spalte schreibt.
Hier einmal mein Quellcode zum Verständnis
Jemand ne Idee?
Hier einmal mein Quellcode zum Verständnis
Java:
import java.io.*;
import java.net.URL;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class Test extends AbstractTableModel {
Vector data;
Vector columns;
public Test() {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new URL("xy.php")
.openStream());
doc.getDocumentElement().normalize();
NodeList nl = doc.getElementsByTagName("Linie");
NodeList n2 = doc.getElementsByTagName("Ziel");
NodeList n3 = doc.getElementsByTagName("Platz");
NodeList n4 = doc.getElementsByTagName("HF");
NodeList n5 = doc.getElementsByTagName("Zeit");
NodeList DFIpublic = doc.getElementsByTagName("Abfahrt");
String data1;
String data2;
String data3;
String data4;
String data5;
data = new Vector();
columns = new Vector();
for (int i = 0; i < DFIpublic.getLength(); i++) {
data1 = nl.item(i).getFirstChild().getNodeValue();
data2 = n2.item(i).getFirstChild().getNodeValue();
data3 = n3.item(i).getFirstChild().getNodeValue();
data4 = n4.item(i).getFirstChild().getNodeValue();
data5 = n5.item(i).getFirstChild().getNodeValue();
String line = data1 + " " + data2 + " " + data3 + " " + data4 + " " + data5 ;
StringTokenizer st2 = new StringTokenizer(line, " ");
while (st2.hasMoreTokens())
data.addElement(st2.nextToken());
}
columns.add("");
columns.add("");
columns.add("");
columns.add("");
columns.add("");
} catch (Exception e) {
e.printStackTrace();
}
}
public int getRowCount() {
return data.size() / getColumnCount();
}
public int getColumnCount() {
return columns.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
return (String) data.elementAt((rowIndex * getColumnCount())
+ columnIndex);
}
public static void main(String argv[]) throws Exception {
Test t = new Test();
JTable table = new JTable();
table.setModel(t);
JScrollPane scrollpane = new JScrollPane(table);
JPanel panel = new JPanel();
panel.add(scrollpane);
JFrame frame = new JFrame();
frame.add(panel, "Center");
frame.pack();
frame.setVisible(true);
}
}
Jemand ne Idee?
Zuletzt bearbeitet von einem Moderator: