【发布时间】:2016-07-07 00:11:56
【问题描述】:
我知道以前有人问过这个问题,并且有很多线程可以剪切和粘贴工作代码,但我的问题是为什么我下面的代码不起作用。我正在尝试从 JList 中删除多个项目,但是当我运行以下代码时,我得到了一个越界异常。这是代码片段:
static DefaultListModel<File> listModel = new DefaultListModel<>();
JList<File> fileList = new JList<>(listModel);
void removeFiles() {
int[] listRange = new int[100];
listRange = fileList.getSelectedIndices();
int i = 0;
while (i <= listRange.length) {
listModel.remove(listRange[i]);
i++;
}
}
我已经使用调试语句来确认fileList 正在获取数据(即,如果我添加 4 个文件,它的长度为 4),并且我还确认了 listRange 中的索引代表我要删除的文件。但由于某种原因,它不会删除它们。我已经尝试从 fileList 以及模型 (listModel) 中删除,但两者都不起作用。我在这里忽略了什么吗?谢谢。
【问题讨论】:
-
there are lots of threads where I could cut and paste working code, but my question is about why the code I have below doesn't work- 那么为什么不将工作代码与您的代码进行比较,看看有什么区别。如果您告诉您问题出在哪里,那与您剪切和粘贴工作代码的结果相同。除非你学会了对问题进行一些基本的调试,否则你没有学到任何东西,因为我们会为你解决问题。
标签: java swing indexoutofboundsexception