Sebastian29
Erfahrenes Mitglied
Hi an alle!
Ich verwende die Klasse TableSorter von Sun und übergebe mit meinem eigenen AbstractTableModel. Meine eigene AbstractCellEditor und DefaultTableCellRenderer sind auch dabei. Es funktioniert auch alles prima.
Jetzt kommen wir zum Problem, was ich nur vermuten kann, dass das ein Bug-Fehler sein könnte.
Jedes Mal, wenn die Tabelle nur eine einzige Zeile hat und klicke per Maus einmal auf irgendeine Zelle, knallt plötzlich diesen ArrayIndexOutOfBoundsException:
Natürlich erst clear() und dann einfügen!
<CODE>
java.lang.ArrayIndexOutOfBoundsException: 1
at com.gselectronic.tabelle.TableSorter.modelIndex(TableSorter.java:250)
at com.gselectronic.tabelle.TableSorter.setValueAt(TableSorter.java:291)
at javax.swing.JTable.setValueAt(Unknown Source)
at javax.swing.JTable.editingStopped(Unknown Source)
at javax.swing.AbstractCellEditor.fireEditingStopped(Unknown Source)
at com.gselectronic.tabelle.Finanzbuchhaltung.TableCellEditorFinanzbuchhaltung.fireEditingStopped(TableCellEditorFinanzbuchhaltung.java:163)
at javax.swing.AbstractCellEditor.stopCellEditing(Unknown Source)
at com.gselectronic.tabelle.Finanzbuchhaltung.TableCellEditorFinanzbuchhaltung.stopCellEditing(TableCellEditorFinanzbuchhaltung.java:159)
at javax.swing.JTable.editCellAt(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.adjustFocusAndSelection(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
</CODE>
ab da in der Klasse TableSorter sehe ich, dass row = 1 steht! Die 1. Zeile (row = 0) der Tabelle ist doch 0 und die 2. Zeile (row = 1) gibt es gar nicht, weil es in der Tabelle nur eine Zeile gibt! Deshalb Exception!
<CODE>
public void setValueAt(Object aValue, int row, int column) { <--- BUG-Fehler row = 1
tableModel.setValueAt(aValue, modelIndex(row), column);
}
</CODE>
Falls ihr nicht wisst, wie ich dieses Problem lösen könnte, möchte ich gerne dieses an Sun schreiben, ansonsten finde ich überhaupt keine aktuelle TableSorter-Klasse. Kostet es was, wenn ich mich bei Sun anmelde bzw. bei Sun registiere, um dort diesen Bug-Fehler zu fragen?
Gruß
Sebastian29
Ich verwende die Klasse TableSorter von Sun und übergebe mit meinem eigenen AbstractTableModel. Meine eigene AbstractCellEditor und DefaultTableCellRenderer sind auch dabei. Es funktioniert auch alles prima.
Jetzt kommen wir zum Problem, was ich nur vermuten kann, dass das ein Bug-Fehler sein könnte.
Jedes Mal, wenn die Tabelle nur eine einzige Zeile hat und klicke per Maus einmal auf irgendeine Zelle, knallt plötzlich diesen ArrayIndexOutOfBoundsException:
Natürlich erst clear() und dann einfügen!
<CODE>
java.lang.ArrayIndexOutOfBoundsException: 1
at com.gselectronic.tabelle.TableSorter.modelIndex(TableSorter.java:250)
at com.gselectronic.tabelle.TableSorter.setValueAt(TableSorter.java:291)
at javax.swing.JTable.setValueAt(Unknown Source)
at javax.swing.JTable.editingStopped(Unknown Source)
at javax.swing.AbstractCellEditor.fireEditingStopped(Unknown Source)
at com.gselectronic.tabelle.Finanzbuchhaltung.TableCellEditorFinanzbuchhaltung.fireEditingStopped(TableCellEditorFinanzbuchhaltung.java:163)
at javax.swing.AbstractCellEditor.stopCellEditing(Unknown Source)
at com.gselectronic.tabelle.Finanzbuchhaltung.TableCellEditorFinanzbuchhaltung.stopCellEditing(TableCellEditorFinanzbuchhaltung.java:159)
at javax.swing.JTable.editCellAt(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.adjustFocusAndSelection(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$MouseInputHandler.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
</CODE>
ab da in der Klasse TableSorter sehe ich, dass row = 1 steht! Die 1. Zeile (row = 0) der Tabelle ist doch 0 und die 2. Zeile (row = 1) gibt es gar nicht, weil es in der Tabelle nur eine Zeile gibt! Deshalb Exception!
<CODE>
public void setValueAt(Object aValue, int row, int column) { <--- BUG-Fehler row = 1
tableModel.setValueAt(aValue, modelIndex(row), column);
}
</CODE>
Falls ihr nicht wisst, wie ich dieses Problem lösen könnte, möchte ich gerne dieses an Sun schreiben, ansonsten finde ich überhaupt keine aktuelle TableSorter-Klasse. Kostet es was, wenn ich mich bei Sun anmelde bzw. bei Sun registiere, um dort diesen Bug-Fehler zu fragen?
Gruß
Sebastian29