philBerlin
Mitglied
Hallo hallo,
mich beschäftigt seit einiger Zeit ein Problem und ich würde hier nicht schreiben, wenn ich nicht wirklich gründlich recherchiert hätte. Ich bekomme folgende Fehlermeldung, wenn ich Daten in eine jTable einfüge:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(BasicTableHeaderUI.java:688)
at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(BasicTableHeaderUI.java:721)
at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTableHeaderUI.java:752)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1627)
at javax.swing.ViewportLayout.layoutContainer(ViewportLayout.java:123)
at java.awt.Container.layout(Container.java:1432)
at java.awt.Container.doLayout(Container.java:1421)
at java.awt.Container.validateTree(Container.java:1519)
at java.awt.Container.validateTree(Container.java:1526)
at java.awt.Container.validate(Container.java:1491)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:639)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:127)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Das ArrayIndexOutOfBoundsException: 0 >= 0 nimmt verschieden Werte an, wei z.B. 1 >= 1, 2 >= 1, 2 >= 2 usw.
folgenden Code benutze ich um die Daten einzufügen:
Das ganze läuft unter java 6. Ich habe schon verschiedene Sachen ausprobiert, wie z.B. das DefaultTableModel in eine eigene Klasse auszulagern oder den TableRowSorter wegzulassen.
Ich bin bei meiner Recherche auf folgenden Bugreport gestoßen, der dieser Exception hier relativ ähnlich ist, allerdings ist dieser als "Closed" markiert:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6462008
Ich finde das Schwierige dabei den Fehler zu finden ist, dass beim StackTrace vom EventDispatchThread bis zur Exception keine einzige Zeile von meinem Code vorkommt. Wenn mir irgendjemand helfen kann, würde ich mich freuen
grüße phil
mich beschäftigt seit einiger Zeit ein Problem und ich würde hier nicht schreiben, wenn ich nicht wirklich gründlich recherchiert hätte. Ich bekomme folgende Fehlermeldung, wenn ich Daten in eine jTable einfüge:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(BasicTableHeaderUI.java:688)
at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(BasicTableHeaderUI.java:721)
at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTableHeaderUI.java:752)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1627)
at javax.swing.ViewportLayout.layoutContainer(ViewportLayout.java:123)
at java.awt.Container.layout(Container.java:1432)
at java.awt.Container.doLayout(Container.java:1421)
at java.awt.Container.validateTree(Container.java:1519)
at java.awt.Container.validateTree(Container.java:1526)
at java.awt.Container.validate(Container.java:1491)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:639)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:127)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Das ArrayIndexOutOfBoundsException: 0 >= 0 nimmt verschieden Werte an, wei z.B. 1 >= 1, 2 >= 1, 2 >= 2 usw.
folgenden Code benutze ich um die Daten einzufügen:
Code:
public void addOwnStudies(LinkedList<Study> studyList) {
this.studyList = studyList;
String columns[] = {"", Message.STUDY(desk.LANG), Message.AUTHOR(desk.LANG), Message.DATE(desk.LANG)};
Object rows[][] = new Object[studyList.size()][columns.length];
if (studyList.size() > 0) {
int i = 0;
for(Study s : studyList) {
rows[i][0] = studyList.indexOf(s);
rows[i][1] = s.getStudyName();
rows[i][2] = s.getAuthor();
rows[i][3] = s.getStudyDate();
i++;
}
TableModel model = new DefaultTableModel(rows, columns) {
public Class getColumnClass(int column) {
Class returnValue;
if ((column >= 0) && (column < getColumnCount())) {
returnValue = getValueAt(0, column).getClass();
} else {
returnValue = Object.class;
}
return returnValue;
}
public boolean isCellEditable(int row, int col) {
return false;
}
};
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setModel(model);
table.setRowSorter(sorter);
} else {
String empty[][] = {};
TableModel model = new DefaultTableModel(empty, columns);
table.setModel(model);
table.setRowSorter(null);
}
initColumnSizes(table);
}
Das ganze läuft unter java 6. Ich habe schon verschiedene Sachen ausprobiert, wie z.B. das DefaultTableModel in eine eigene Klasse auszulagern oder den TableRowSorter wegzulassen.
Ich bin bei meiner Recherche auf folgenden Bugreport gestoßen, der dieser Exception hier relativ ähnlich ist, allerdings ist dieser als "Closed" markiert:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6462008
Ich finde das Schwierige dabei den Fehler zu finden ist, dass beim StackTrace vom EventDispatchThread bis zur Exception keine einzige Zeile von meinem Code vorkommt. Wenn mir irgendjemand helfen kann, würde ich mich freuen

grüße phil