Я подклассифицировал AbstractTableModel
для использования в качестве модели для моего JTable
. Всякий раз, когда данные добавляются в, я вызываю fireTableRowsInserted()
в потоке AWT. Весь доступ к моему базовому контейнеру сделан потокобезопасным с помощью синхронизированных методов.
Этот шаблон до сих пор работал нормально для меня. Однако теперь я хочу удалить данные из списка, который я понял, у меня есть проблема с многопоточностью. Если я удалю строку и вызову fireTableRowsDeleted()
в потоке AWT, я все равно смогу получить вызов getValueAt()
для индекса строки, которого больше не существует.
Каков наилучший метод выполнения операций на табличной модели вне потока AWT?