AbstractListModel
является абстрактным реализация ListModel
, которая обеспечивает конкретные варианты реализации ListDataListener
методов, но она не содержит каких-либо конкретных данных внутри структуры. Получение соответствующего ListDataEvent
позволяет прослушиванию JList
обновить себя в ответ на изменение в ListModel
. DefaultListModel
- типичный бетонный подкласс AbstractListModel
, который управляет внутренним элементом Vector
. source иллюстрирует типичное использование. В частности, fireContentsChanged()
«Отправлено, когда содержимое списка изменилось слишком сложным образом, чтобы охарактеризовать предыдущие методы», fireIntervalAdded()
или fireIntervalRemoved()
. Потому что Vector
является legacy оригинала DefaultTableModel
, вы захотите использовать более гибкую альтернативу; index0
и index1
относятся к элементам выбранной вами структуры данных.
Что делать, если я вставляю 10 элементов в случайные места?
Тогда index0
и index1
должны "bracket the change."
Что означает "кронштейн изменение" означает?
В этом контексте кронштейн используется в качестве глагола заключать или включать в себя; index0
должен включать наименьший измененный индекс, а index1
должен включать в себя самый высокий измененный индекс. Диапазон может включать в себя промежуточные ячейки, хотя они не были изменены. К счастью, как JTable
, JList
оказывает только видимые ячейки, поэтому предельные издержки ограничены; больше here.
Что означает «скобка изменения»? –
Я разработал выше. – trashgod
Спасибо, что объяснил, я думаю, что понял. Поэтому, если у модели было 20 элементов, и я удалил случайные, я бы выстрелил (0, 19). И если бы я случайно добавил 5 элементов, я бы выстрелил (0, 24). Это верно? –