Hallo zusammen,
ich kämpf grad mit einer Tabelle, die mir ständig das IndexOutOfBoundsException wirft:
Ich starte mein Programm - alles ok. Ich mache ne Suche - Ergebnisse wirden im Table angezeigt. Ich ändere Suchkrieterien - Ergebnisse werden angezeigt. ABER: Nachdem ich einmal die Sortierreihenfolge in irgendeiner Spalte geändert habe, läuft alles schief: Entweder bringt die Suche keine Ergebnisse (es werden immer noch die Objekte der letzten Suche angezeigt) oder es kommt zu diesem IndexOfBoundsException.
Datenbindnung funktioniert und im Debug habe ich auch überprüft: Es wird alles gefunden und auch an die Table weitergegeben. Es scheint was an der Anzeige nicht zu stimmen.
Eventuell was mit Eventhandling?
ich kopoert mal ein paar Ausschnitte aus dem Fehlerstack:
Das Schlüsselwort ist hier wahrscheinlich der EDT... und ich denkmal mit dem Repaint der Tabelle läuft dann was schief.
Hab aber auch schon folgendes probiert:
das hat mich aber auch nicht weiter gebracht.:noe:
Hat vllt jemadn ne idee?????? ???:L
ich kämpf grad mit einer Tabelle, die mir ständig das IndexOutOfBoundsException wirft:
Ich starte mein Programm - alles ok. Ich mache ne Suche - Ergebnisse wirden im Table angezeigt. Ich ändere Suchkrieterien - Ergebnisse werden angezeigt. ABER: Nachdem ich einmal die Sortierreihenfolge in irgendeiner Spalte geändert habe, läuft alles schief: Entweder bringt die Suche keine Ergebnisse (es werden immer noch die Objekte der letzten Suche angezeigt) oder es kommt zu diesem IndexOfBoundsException.
Datenbindnung funktioniert und im Debug habe ich auch überprüft: Es wird alles gefunden und auch an die Table weitergegeben. Es scheint was an der Anzeige nicht zu stimmen.
Eventuell was mit Eventhandling?
ich kopoert mal ein paar Ausschnitte aus dem Fehlerstack:
Java:
java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.jgoodies.common.collect.ArrayListModel.getElementAt(ArrayListModel.java:208)
at com.jgoodies.binding.list.IndirectListModel.getElementAt(IndirectListModel.java:792)
at com.jgoodies.binding.list.IndirectListModel.getElementAt(IndirectListModel.java:495)
...
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
...
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:785)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Das Schlüsselwort ist hier wahrscheinlich der EDT... und ich denkmal mit dem Repaint der Tabelle läuft dann was schief.
Hab aber auch schon folgendes probiert:
Java:
@com.jgoodies.application.listener.PropertyChangeListener
public void onTableItemsChanged() {
// table.revalidate();
// table.repaint();
tableElementsChangesHandling();
}
private void tableElementsChangesHandling(){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
table.revalidate();
table.repaint();
}
});
}
das hat mich aber auch nicht weiter gebracht.:noe:
Hat vllt jemadn ne idee?????? ???:L