java - JFreeChart 抛出 java.util.ConcurrentModificationException

标签 java exception jfreechart concurrentmodification

我目前正在使用 JFreeChat 来用 Java 绘制一些图表。实际绘图是一个相当大的项目的一部分,这不允许我轻松地包含更多代码。对我来说,似乎直接抛出异常
来自 JFreeChart 组件。如果有人可以提供帮助,我将非常感激。有没有办法更详细地追踪异常抛出的具体位置?我读到,在列表迭代之类的情况下,通常会抛出异常,同时从同一列表中删除元素(这不是我现在正在做的事情)。

Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
    at java.util.ArrayList$Itr.next(ArrayList.java:851)
    at org.jfree.chart.plot.XYPlot.drawAnnotations(XYPlot.java:3972)
    at org.jfree.chart.plot.XYPlot.draw(XYPlot.java:3339)
    at org.jfree.chart.JFreeChart.draw(JFreeChart.java:1229)
    at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:1624)
    at javax.swing.JComponent.paint(JComponent.java:1056)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
    at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
    at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:306)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
    at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
    at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
    at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
    at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
    at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
    at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

致以诚挚的问候。

最佳答案

drawAnnotations() 的来源在版本 1.0.19 中,第 3972 行可见 here ;它没有什么异常并且正常工作正常。如果您无意中使顶级容器可见或更新 initial thread 上的绘图数据集,则可能会出现问题。 。生成的更新事件将在 event dispatch thread 上执行,可能会引起竞争条件。 Swing 要求您event dispatch thread 上构造和操作Swing GUI 对象。 。如果错误代码不明显,请尝试显示的方法 here检测潜在的违规行为。

关于java - JFreeChart 抛出 java.util.ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46206032/

相关文章:

java - JUnit AssertEquals() 由于数组上存在额外空格而失败

java - 当我运行我的应用程序时,Weblogic 中出现异常?

c# - sqlConnection/Command 使用语句 + try/catch block

c++ - ADO 和异常处理

java - 框架退出操作Java

java - Spring 的 Bean 列表

java - 更改散点图中的系列轮廓描边和绘画

java - JFreeChart 图表滞后

java - 如何在Excel中导出网页

java - 每 2 秒刷新一次从 JSON 响应填充的 listView