2016-04-28 47 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 –