Hallo,
ich habe eine JTable 1, welche Daten enthält, die in eine weitere JTable 2 (in anderer Strukturierungsform) übertragen werden sollen. Eine Zeile der JTable 1 soll aufgeteilt werden und in JTable 2 in mehrere Zeilen übertragen werden.
Habe dazu folgenden Code geschrieben in Anlehnung an den Hinweis, eine Zeile dem DefaultTableModel hinzuzufügen:
Als Fehlermeldung bekomme ich jedoch:
Der Fehler tritt auf bei
. Warum kann er denn auf model.getValueAt(u-2, 0) auf die Spalte 0 (oder auch 1, habe es bereits getestet) nicht zugreifen? Ich füge doch vorher schon Zeilen hinzu?
Vielen Dank schonmal.
ich habe eine JTable 1, welche Daten enthält, die in eine weitere JTable 2 (in anderer Strukturierungsform) übertragen werden sollen. Eine Zeile der JTable 1 soll aufgeteilt werden und in JTable 2 in mehrere Zeilen übertragen werden.
Habe dazu folgenden Code geschrieben in Anlehnung an den Hinweis, eine Zeile dem DefaultTableModel hinzuzufügen:
Java:
table = db.baueTabelle(query);
DefaultTableModel model = new DefaultTableModel();
model.addColumn("A");
model.addColumn("B");
model.addColumn("V");
model.addColumn("F");
model.addColumn("G");
model.addColumn("H");
model.addColumn("T");
JTable tabelle = new JTable(model);
model = (DefaultTableModel) tabelle.getModel();
Vector<String> standardV = new Vector<String>();
String fehlerid = "0";
for(int u = 0; u < table.getRowCount(); u++)
{
if(!fehlerid.equals(table.getValueAt(u, 0).toString()) || !fehlerid.equals("0"))
{
standardV.add("");
standardV.add("");
standardV.add("");
standardV.add("");
standardV.add("");
standardV.add("");
standardV.add("");
model.addRow(standardV);
standardV.clear();
standardV.add("Fehlerortnummer");
standardV.add("Bauteil");
standardV.add("X-Koordinate");
standardV.add("Y-Koordinate");
standardV.add("Baureihe");
standardV.add("Fehlerartnummer");
standardV.add("Fehlerart");
model.addRow(standardV);
standardV.clear();
for(int w = 1; w < 8; w++)
standardV.add(table.getValueAt(u, w).toString());
model.addRow(standardV);
standardV.clear();
}
if(u > 3)
{
if(model.getValueAt(u-2, 0).toString().equals("Fehlerortnummer"))
{
standardV.add("Verursacherortnummer");
standardV.add("Band");
standardV.add("Station");
standardV.add("Arbeitsplatz");
standardV.add("Meisterei");
standardV.add("Kostenstelle");
standardV.add("");
model.addRow(standardV);
standardV.clear();
}
}
for(int w = 8; w < 14; w++)
standardV.add(table.getValueAt(u, w).toString());
standardV.add("");
model.addRow(standardV);
standardV.clear();
fehlerid = table.getValueAt(u, 0).toString();
}
Als Fehlermeldung bekomme ich jedoch:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Unknown Source)
at javax.swing.table.DefaultTableModel.getValueAt(Unknown Source)
at risikoverwaltung.view.AuswertungGUI.actionPerformed(AuswertungGUI.java:2129)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
Der Fehler tritt auf bei
Code:
if(model.getValueAt(u-2, 0).toString().equals("Fehlerortnummer"))
Vielen Dank schonmal.