Java:JList只查找可见范围内的索引

时间:2016-04-28 00:33:38

标签: java actionlistener jlist visible

我在按钮点击时执行以下代码:

while(count<listAmount){
        tbiCList.setSelectedIndex(0);

        String item = JList.getSelectedValue();

            String update[] = item.split(", ");

            //this part removed for sake of post

        remove(item);
        count++;
    }

注意:

count从0开始,listAmountJList中的项目数量,remove()是我删除所选项目的方法。

这一切都很好用,但问题是,它只选择并删除单击按钮时可见的项目,而不是经过滚动窗格的项目。当然,我可以再次单击该按钮,然后获取下一组项目,但是,我是程序员,我想要最简单的方式来完成我的任务。

更新

我意识到我通过获取listAmount

来设置LastVisibleIndex();

我的坏。

我现在的问题:每次listAmount命令更新时如何检索while

更新到更新

因为我很不耐烦,所以我倾向于这么做,所以,我道歉。

我想出了如何解决我的问题。在while循环中我刚刚向listAmount变量添加了+1,然后当它给我NullPointerException时,我在try块周围添加了while块。就这样,问题得到解决。

1 个答案:

答案 0 :(得分:1)

您可以删除while语句,而不是使用getSelectedValue()来获取单个选择,而是使用getSelectedValuesList()来选择多个项目,然后遍历这些项目。

不要忘记检查JavaDoc的其他选项。

编辑评论:

List<String> selectedItems = myJList.getSelectedValuesList();
for (int i = 0; i < selectedItems.size(); i++){
    String item = selectedItems.get(i);
    String update[] = item.split(", ");
    //this part removed for sake of post
    //....
}
myJList.removeAll();