为什么Jlist正在选择索引0,即使该项目不存在也是如此。
这是我的代码我创建了一个JList lst,并将其内容设置为一个向量vct,它由类人的对象组成,当调用toString()时,它们提供了people.Which的详细信息,
现在当我运行这个代码时按ctrl + F调用 如果我在输入对话框中输入“alfozen”, 然后它选择第1项,第3项,第5项和第7项,无论我搜索索引0(第1项)总是显示选中,这是我在stackOverflow的第一个问题,如果我应该提供有关该问题的更多信息,请告诉我。提前谢谢
这是代码,
if ((ke.getKeyCode() == KeyEvent.VK_F) && ((ke.getModifiers() &
KeyEvent.CTRL_MASK) != 0))
{
int i=0,j=0;
lst.clearSelection();
lst.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
String s=JOptionPane.showInputDialog("Enter Name to search : ");
if(s==null)return;
String arg[]=new String[vct.size()];
int arr[]=new int[vct.size()];
for(people p : vct)
{
arg[i++]=p.toString();
}
for(j=0,i=0;j<arg.length;j++)
{
if(arg[j].contains(s))
{
arr[i++]=j;
}
}
lst.setSelectedIndices(arr);
lst.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
答案 0 :(得分:3)
那将是,因为你告诉了它。
在循环之后,arr的第一个i
元素包含匹配的索引。其余的包含什么?好吧,你从来没有给他们任何东西,所以他们保持默认的int
值0。
因此,如果您有5个元素,并且第二个,第三个和第五个元素匹配,则ar
包含1,2,4,0,0。
因此,当您致电lst.setSelectedIndices(arr);
时,会选择元素1,2,4,0和0。