-1

如何修复此代码?我不知道这个错误是什么意思...我听说它来自于在 for each 循环期间删除了列表的元素,但我没有看到我要删除的任何内容...

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

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

4

1 回答 1

1

如果您有多个线程可以使用 layerlist,您应该考虑使用同步块作为下面的示例。这将有助于防止这个问题,或者你可以考虑让 layerList 同步,但是如果没有更多的程序信息和线程结构,很难告诉你什么是最好的。签出此同步列表作为选项而不是同步块。

 synchronized( layerList ) 
 {
    for(Layer e : layerList)
        e.drawLayer(g2);
 }
于 2010-02-19T05:45:29.010 回答