FreeChart java.lang.IndexOutOfBoundsException

Lorenz

Mitglied
Hallo Forum,

ich verwende JFreeChart um mir Daten welche ich von eine uC bekomme zu visualisieren.

Leider bekomme ich moemtan Folgenden Fehler Code:

Code:
xception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1373, Size: 1373
	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
	at java.util.ArrayList.get(ArrayList.java:322)
	at org.jfree.data.time.TimeSeries.getDataItem(TimeSeries.java:330)
	at org.jfree.data.time.TimeSeriesCollection.getXValue(TimeSeriesCollection.java:421)
	at org.jfree.chart.renderer.xy.XYLineAndShapeRenderer.drawPrimaryLine(XYLineAndShapeRenderer.java:985)
	at org.jfree.chart.renderer.xy.XYLineAndShapeRenderer.drawItem(XYLineAndShapeRenderer.java:911)
	at org.jfree.chart.plot.XYPlot.render(XYPlot.java:3738)
	at org.jfree.chart.plot.XYPlot.draw(XYPlot.java:3310)
	at org.jfree.chart.JFreeChart.draw(JFreeChart.java:1235)
	at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:1668)
	at javax.swing.JComponent.paint(JComponent.java:1029)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1479)
	at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1410)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1224)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
	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)


hat jemand von euch eine Idee, wieso dieser Fehler entsteht? Stehe Momenta arg auf dem Schlauch.
Ohne dass ich jetzt den ganze Quellcode poste:

Ich verwende mehrer Threads, ich befürchte es hat damit zu tun?
Ich meine auch irgendwo gelesen zu haben, dass das JFreeChart nicht Thread kompatibel ist?

Grüße und Danke
 
Zuletzt bearbeitet:
Hi,

hast du mal die Suchfunktion dieses FOums genutzt oder google?

Dein Problem wird hier hundertfach erläutert und steht auch in der Fehlermeldung.

Hinweis wenn du ein Array mit der größe 10 hast, dann ist der letzte Index 9
 
Ja der Sachverhalt ist mir schon klar.
Jedoch erzeuge ich in diesem Fall das Array ja nicht selbst, sondern das JFreeChart macht das für mich.
Da sollte es also eigentlich kein "zu kleines" Array geben.
 
beim ersten googlen:

Just ensure that any updates to the data model are done on the event dispatch thread as JFreechart is not thread safe.

Dein DataModel muss also im EDT geupdated werden...
 
Dann änderst du wohl die Daten des Charts außerhalb des EDT zu einem ungünstigen Zeitpunkt. --> Daten nur im EDT ändern!
 

Zurück
Oben