2016-04-28 44 views
0

我有下面的代码执行按钮点击指数:的Java:JList中只发现在可见光范围内

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,listAmount是项目的JList量, remove()是我有一个方法,删除选定的项目。

这一切工作正常,但问题是,它只选择和删除单击按钮时可见的项目,而不是滚动窗格中的项目。当然,我可以再次点击按钮,并获得下一组项目,但是,我是一名程序员,我希望最简单的方式来完成我的任务。

UPDATE

我意识到,我被越来越LastVisibleIndex();

我的坏设置listAmount

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

更新到更新

因为我不耐烦了,我倾向于这样做了很多,所以,我很抱歉。

我想出了如何解决我的问题。在while循环内,我刚刚为listAmount变量添加了+1,然后当它给我NullPointerException时,我在while块的周围添加了try块。所以那个问题就解决了。

回答

1

而不是使用getSelectedValue()得到一个单一的选择,你可以删除while语句,并使用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(); 
+0

在回答您的编辑:为了得到一个新的listAmount只是用同样的方法,你用得到它的第一次,但把它放在你的while循环? – sorifiend

+0

问题在于,我不能把变量放在循环中,因为while循环**使用**那个变量。但我真的想出了如何去做。现在编辑问题... –

+0

我相信你的答案可能只是帮助,但问题是:我需要逐个选择值,将它们分配给同一个字符串,以便我可以将它用于SQL查询。我感谢你尽力帮助! :D –