我正在學習在Java Swing中使用列表。在寫一個小程序來了解ListSelectionModel
和ListSelectionEvent
使用JList
的工作時,我對getFirstIndex
和getLastIndex
給出的值感到困惑。擺動關於firstIndex和lastIndex的混淆
每個說的文檔 -
getFirstIndex
:
返回的第一行,其選擇可能已經改變的指標。
和getLastIndex
返回的最後一排,其選擇可能已經改變的指標。
現在可以說,我有一個這樣的列表(允許單範圍內選擇) -
Element 1
Element 2
Element 3
Element 4
Element 5
最初,沒有一個是selected.Now,我選擇1和firstIndex了0,lastIndex的給0,是正確的。
現在,我按住Shift鍵並選擇3。在這裏,firstIndex了0和lastIndex的給2 lastIndex的是好的,但我有一個關於firstIndex值的幾個問題 -
件1仍然選中並且其選擇沒有改變,那麼firstIndex如何0?
保持在上述觀點,不應firstIndex爲1,因爲這是第一行的選擇已更改(未選中 - >選擇)?
此外,該列表顯示了由不同背景選擇的元素。現在當我做出選擇時,它也顯示了帶有邊框的元素?這是什麼意思?
好的。但是,讓我說我保持這種選擇。現在,保持Shift按下,我選擇元素4.然後firstIndex返回2和lastIndex 3.不應該是0-3? – Cygnus
我不能再現問題。如果我選擇第一個列表元素,請按住shift鍵並選擇第三個列表元素。然後選擇1 2 3。如果我一直按住shift鍵並選擇4.比選擇1 2 3 4。我嘗試了這個示例應用程序http://docs.oracle。com/javase/tutorial/uiswing/events/listselectionlistener.html –
不,你誤解了我。我說的是,選擇很好 - 我看到1,2,3,4被選中。但firstIndex返回2和lastIndex 3,而不是0和3。 – Cygnus