我有一个JList(带有Multiple Selections选项),我需要向用户显示多个Selected Item:
这就是我的尝试:
myvaluesJlist初始化为" a"," b"," c"," d"。
myvalues是一个字符串的ArrayLsit,包含值" a"," c"。
否则我不是要在myValues中显示要选择的值的Jlist。
当对话框打开时我想要 for(String s:myvalues){ myvaluesJlist.setSelectedValue(s,true); } myvalues是我需要显示为选中的值列表,但在这种情况下,我只能看到" s"在最后一次迭代中被选中。
我试图找到一种方法来获取myvalues中存在的值的索引,但没有Luck.Please帮助
答案 0 :(得分:0)
使用setSelectedIndicies可能吗? http://docs.oracle.com/javase/7/docs/api/javax/swing/JList.html#setSelectedIndices%28int%5B%5D%29
答案 1 :(得分: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));
请注意,如果myvalues
是List
,那么您可以将.length
更改为.size()
无论如何,您需要使用setSelectedIndices
来做您想做的事情。这里是doc:
将选择更改为给定指定的索引集 阵列。大于或等于模型大小的索引将被忽略。 这是一种方便的方法,可以清除选择然后使用 在选择模型上添加addSelectionInterval以添加索引。参考 到用于的选择模型类的文档 有关如何处理小于0的值的详细信息。
http://docs.oracle.com/javase/7/docs/api/javax/swing/JList.html#setSelectedIndices(int[])
答案 2 :(得分:0)