我正在学习在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