2015-04-30 169 views
2

我做這個已經是搜索,但我發現人問的問題,其中指數僅爲int和不int[]。因此,我的問題與這些不同。如何從JList的給定索引中刪除多個元素?

這裏是我的ActionPerformed方法:

private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {           
    int[] selectedTask = lstToDoLists.getSelectedIndices(); 
    for (int i = 0; i < selectedTask.length; i++){ 
     Object getSelTask = lstToDoLists.getModel().getElementAt(selectedTask[i]); 
    } 
} 

我有一個名爲int[]selectedTask獲取所有選定項的指數我Jlist「lstToDoLists」。

然後,我有一個循環,使用他們的指標得到所有在JList所選項目。

如何刪除在JList那些選定的項目?

+0

我不能肯定,但你可能想給指數排序,最高的指數開始,你的工作方式降到最低,否則你可能會被刪除了錯誤的元素。 –

+0

它將取決於您使用的模型類型 – MadProgrammer

+0

jList.getModel())。remove(index); – User404

回答

2

With for循環?如果A []包含要從JList中移除的所有索引,那麼爲什麼每次都不能遍歷A []和JList.remove?如果從最後一次出現開始,它將不會更改較低索引項目的位置。

+0

因爲每次從模型中刪除元素,索引都會更改... – MadProgrammer

+0

@MadProgrammer我需要ListSelectionListener嗎? –

+0

我不這麼認爲,但問題更復雜,然後只是遍歷索引列表 – MadProgrammer

0

根據型號的不同實現,你應該能夠刪除使用指數模型的任何元素。

lstToDoLists.getModel().remove(selectedTask[i]); 

你可以看到關於DefaultListModeldefinition

相關問題