Исключение в потоке "AWT-EventQueue-0" java.util - PullRequest
0 голосов
/ 19 февраля 2010

Как мне исправить этот код? я не знаю, что означает эта ошибка ... Я слышал, что это происходит из-за удаления элементов списка во время каждого цикла, но я не вижу ничего, что я удаляю ...

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

У jcomponent есть список объектов, называемых слоями, в которые он передает Graphics, чтобы слои могли рисовать сами. Я никогда не удаляю ни один из слоев или что-либо, поэтому я потерян. Помощь

1 Ответ

1 голос
/ 19 февраля 2010

Если у вас работает более одного потока, который может работать со списком слоев, вам следует рассмотреть возможность использования блока синхронизации в качестве примера ниже. Это поможет предотвратить эту проблему, или вы могли бы рассмотреть возможность синхронизации layerList, но без дополнительной информации о программе и структуре потока трудно сказать вам, что лучше. Проверьте этот синхронизированный список в качестве опции вместо синхронизированного блока.

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