2016-09-02 1 views
1

Как именно использовать метод fireContentsChanged() в java.swing.AbstractListModel? Этот метод вызывается, когда некоторые из элементов ListModel имеют свое «содержимое».Как именно я использую метод fireContentsChanged в java.swing.AbstractListModel?

  1. Означает ли это, что объект индекса каким-то образом изменился?
  2. Или он также включает, когда объект индекса был заменен другим объектом?
  3. Можете ли вы использовать это для добавления/удаления индексов? Например, допустим, я удаляю 10 случайных элементов из любого места в списке. Что index0 и index1 даю? Что делать, если я вставляю 10 элементов в случайные места?

ответ

2

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.

+0

Что означает «скобка изменения»? –

+0

Я разработал выше. – trashgod

+0

Спасибо, что объяснил, я думаю, что понял. Поэтому, если у модели было 20 элементов, и я удалил случайные, я бы выстрелил (0, 19). И если бы я случайно добавил 5 элементов, я бы выстрелил (0, 24). Это верно? –

Смежные вопросы