Hallo!
ich habe eine JTable mit 2 Spalten. Die erste Spalte ist ein String und die zweite eine CheckboxNode.
Das funktioniert mit einem zweidimensionalen Array auch ohne Probleme, also wenn ich die Daten in einer Object[][] Struktur ablege. Nun hätte ich das ganze allerdings gerne dynamisch, und hab mir daher 2 Arraylisten erstellt. Eine für die erste Spalte und eine für die zweite. Das funktioniert allerdings nicht da ich ständig exceptions bekomme.
Mein Code ist folgender:
Elemente hinzufügen wolte ich über einem anderen Objekt z.b. mit dem Aufruf:
Die Exception die ich krieg ist folgende:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
Kann mir villeicht jemand sagen wo mein Fehler liegt? Sitz hier jetzt schon stundenlang dran aber bekomme das Füllen der Tabelle einfach nicht dynamisch hin.
Vielen Dank schon einmal
ich habe eine JTable mit 2 Spalten. Die erste Spalte ist ein String und die zweite eine CheckboxNode.
Das funktioniert mit einem zweidimensionalen Array auch ohne Probleme, also wenn ich die Daten in einer Object[][] Struktur ablege. Nun hätte ich das ganze allerdings gerne dynamisch, und hab mir daher 2 Arraylisten erstellt. Eine für die erste Spalte und eine für die zweite. Das funktioniert allerdings nicht da ich ständig exceptions bekomme.
Mein Code ist folgender:
Code:
class TableModel extends AbstractTableModel {
/**
*
*/
private String[] columnNames = { "name", "ausgewählt" };
private ArrayList<Object> spalte1 = new ArrayList<Object>();
private ArrayList<Object> spalte2 = new ArrayList<Object>();
public int getColumnCount() {
return 2;
}
public int getRowCount() {
return spalte1.size()+spalte2.size();
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
if (col == 0)
return spalte1.get(row);
if (col == 1)
return spalte2.get(row);
else
return 0;
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
if (col < 0) {
return false;
} else {
return true;
}
}
public void setValueAt(Object value, int row, int col) {
if (col == 0)
spalte1.add(col,value);
if (col == 1)
spalte2.add(col,value);
fireTableCellUpdated(row, col);
}
}
Elemente hinzufügen wolte ich über einem anderen Objekt z.b. mit dem Aufruf:
Code:
JTable table = new JTable(new TableModel());
table.setValueAt("thomas", 0, 0);
table.setValueAt(true, 0, 1);
Die Exception die ich krieg ist folgende:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
Kann mir villeicht jemand sagen wo mein Fehler liegt? Sitz hier jetzt schon stundenlang dran aber bekomme das Füllen der Tabelle einfach nicht dynamisch hin.
Vielen Dank schon einmal
Zuletzt bearbeitet: