我正在学习在 Java Swing 中使用列表。在编写一个小程序来理解 的工作ListSelectionModel
和ListSelectionEvent
使用JList
时,我对getFirstIndex
and给出的值感到困惑getLastIndex
。
每个人的文档都说 -
getFirstIndex
:
返回其选择可能已更改的第一行的索引。
和getLastIndex
返回其选择可能已更改的最后一行的索引。
现在假设我有一个这样的列表(允许单范围选择) -
Element 1
Element 2
Element 3
Element 4
Element 5
最初,没有选择。现在,我选择了 1,firstIndex 给出了 0,lastIndex 给出了 0,这是正确的。
现在,我按住 shift 并选择 3。这里,firstIndex 给出了 0,lastIndex 给出了 2。lastIndex 很好,但我对 firstIndex 的值有一些疑问 -
元素 1 仍然被选中并且它的选择没有改变,那么 firstIndex 0 怎么样?
考虑到上述观点,firstIndex 不应该为 1,因为这是选择已更改的第一行(未选择 -> 已选择)?
此外,该列表显示由不同背景选择的元素。现在,当我进行选择时,它还会显示带有边框的元素?那说明什么?