За исключением фона проекта, я реализовал таблицу пользовательских JComboBox.Каждый ряд ComboBox является эксклюзивным: хотя каждый ComboBox имеет свою собственную модель (чтобы разрешить различные варианты выбора), каждый вариант может быть выбран только один раз для каждой строки.Это делается путем добавления тега к передней части элемента при его выборе и повторного удаления при отмене выбора.Если пользователь пытается выбрать помеченный элемент, ничего не происходит.
Однако это работает только при использовании вектора в качестве основы для списка параметров.Я могу получить вектор строк, использовать либо set (), либо setElementAt (), и boom presto все работает.
С ArrayList вместо Vector, однако это не работает вообще.У меня сложилось впечатление, что ArrayLists функционируют аналогичным образом, так как я могу получить анонимный ArrayList, изменить его содержимое, а все другие объекты, зависящие от содержимого этого ArrayList, будут обновлены соответствующим образом, как и реализация Vector.Я надеялся, что кто-нибудь скажет мне, почему это не так, поскольку и Vector, и ArrayList реализуют List и предположительно должны иметь схожее поведение.
EDIT:
Спасибо за быстрый ответ!Все ответы относятся к различиям синхронизации между ArrayList и Vector.Тем не менее, мой проект явно не создает новые темы.Возможно ли, что это проблема синхронизации между моими данными и потоком Swing?Я не достаточно хорош с темами, чтобы знать ...
2-е РЕДАКТИРОВАНИЕ:
Еще раз спасибо всем!Синхронизация между данными и Swing достаточно легко отвечает на мой вопрос, хотя я все еще буду интересоваться более подробной информацией, если есть что-то еще.