2015-02-05 75 views
0

我有一个JList(与多重选择的选项),我需要显示超过一个被选项给用户:显示在JList中选择一个以上的项目

这是我的尝试:

myvaluesJlist用“a”,“b”,“c”,“d”初始化。

myvalues是包含值“a”,“c”的字符串的ArrayLsit。

NOw我不是Jlist来显示要选择的myValues中的值。

当对话框打开时,我想为 (String s:myvalues)myvaluesJlist.setSelectedValue(s,true); } 其中myvalues是我需要显示的所选值的列表,但在这种情况下,我只能看到最后一次迭代中的“s”被选中。

我试图找到一种方法来获取存在于myvalues值的指标,但没有Luck.Please帮助

回答

0

我认为这会做你想要什么

int[] select = new int[myValues.length]; 
int index = 0; 
for(int i = 0; i < myvalues.length; i++){ 
    if(/*condition for selection here*/) 
     select[index++] = i; 
} 
list.setSelectedIndices(Arrays.copyOf(select, index)); 

注意,如果myvaluesList那么你可以改变.length.size()

在任何情况下,你需要使用setSelectedIndices做你想要什么。这里从文档粘贴:

将选择更改为由给定的 数组指定的索引集。大于或等于模型大小的索引被忽略。 这是一种方便的方法,它清除选择内容,然后在选择模型上使用 addSelectionInterval添加索引。请参阅 以了解 所使用的选择模型类的文档,以了解如何处理小于0的值。

http://docs.oracle.com/javase/7/docs/api/javax/swing/JList.html#setSelectedIndices(int[])

+0

@ user2176576这个答案对你有帮助吗? – 2015-02-05 14:08:48

相关问题