“线程中的异常”;AWT-EventQueue-0“;java.util

“线程中的异常”;AWT-EventQueue-0“;java.util,java,exception,concurrentmodification,Java,Exception,Concurrentmodification,如何修复此代码?我不知道这个错误是什么意思。。。我听说这是因为在for-each循环中删除了列表中的元素,但我没有看到任何要删除的内容 public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; for(Layer e : layerList) e.drawLayer(g2); } jcomponent有一个名为层的对象列表,它将

如何修复此代码?我不知道这个错误是什么意思。。。我听说这是因为在for-each循环中删除了列表中的元素,但我没有看到任何要删除的内容

    public void paintComponent(Graphics g)
    {
        Graphics2D g2 = (Graphics2D) g;
        for(Layer e : layerList)
            e.drawLayer(g2);
    }

jcomponent有一个名为层的对象列表,它将图形传递给这些对象,以便层可以自己绘制。我从不移除任何层或任何东西,所以我迷路了。帮助?

< P>如果你有更多的线程可以使用LayelSt表,那么你应该考虑使用一个同步块作为一个例子。这将有助于防止这个问题,或者你可以考虑让列表列表被同步,但是随着程序和线程结构的更多信息,很难告诉你什么是最好的。作为选项而不是同步块签出

 synchronized( layerList ) 
 {
    for(Layer e : layerList)
        e.drawLayer(g2);
 }

它通常有助于发布stacktrace。当你想获得更多的经验时,你将学会阅读这些文章,并欣赏它们的巨大价值。你真的需要发布stacktrace。现在,我们甚至没有异常的名称和消息来处理;您正在访问不是线程安全的LayelStand,所以使用JavaUTL.vector或使用同步将解决这个问题。@ Cabess考虑移动OFF向量,如果您还在使用它,请参见这个问题。