AbstractListModel
是一個抽象的執行ListModel
提供的ListDataListener
方法的具體實現,但它包含在內部沒有具體的數據結構。收到相應的ListDataEvent
允許收聽JList
以響應ListModel
中的更改而自行更新。 DefaultListModel
是AbstractListModel
的典型具體子類,內部操縱Vector
。 source說明了典型的用法。特別是,fireContentsChanged()
是「當列表內容的變化過於複雜,無法用以前的方法表徵時發送」fireIntervalAdded()
或fireIntervalRemoved()
。由於Vector
是原始DefaultTableModel
的legacy,因此您需要使用更靈活的備選方案; index0
和index1
指您選擇的數據結構的元素。
如果我插入在什麼地方隨機10個元素?
然後index0
和index1
應該"bracket the change."
什麼是 「支架上的變化」 呢?
在這方面,托架被用作動詞,意思以包圍或包括; index0
應該包含最低的變化指數,並且index1
應該包括變化最大的指數。範圍可能包括介入的單元格,即使它們沒有更改。令人高興的是,像JTable
,JList
只呈現可見的單元格,所以邊際成本是有界的;更多here。
「支架變化」是什麼意思? –
我已經詳細闡述過了。 – trashgod
感謝您的解釋,我想我現在就明白了。所以如果模型有20個元素,並且我刪除了隨機元素,我會開火(0,19)。如果我隨機添加了5個元素,我會開火(0,24)。那是對的嗎? –