Мой графический интерфейс Swing отображает JList элементов, которые последовательно удаляются фоновым потоком.
За JList стоит ArrayDeque<Card>
, myHopper, реализующий myHopper.getSize()
и myHopper.getElementAt()
в соответствии с контрактом AbstractListModel.
Фоновый поток удаляет элементы с помощью myHopper.poll()
.
Неудивительно, что в настоящее время я получаю индекс массива AWT за пределами исключений.
Что я должен сделать, чтобы правильно синхронизировать доступ к myList между потоком EDT и моим фоновым потоком? Я видел ссылки на Collections.synchronizedList(arrayList)
, но не думаю, что это подходит для моего ArrayDeque.