gpt4 book ai didi

java - 如何使用 setSelectedValue 将多个项目设置为在 JList 中选择?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:57:01 25 4
gpt4 key购买 nike

我有一个通过添加到底层 listModel 动态填充的 jList。现在,如果我有三个字符串,它们的值我知道并且我知道

for(i=0;i<3;i++){
jList.setSelectedValue(obj[i],true);//true is for shouldScroll or not
}

似乎只有最后一项被选中...如果这不能完成并且我必须从基础模型中设置选择我应该怎么做???

另请注意 jList 具有选择模式:

  jList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

提前致谢

最佳答案

请注意,所有 xxSelectedValue 方法都是围绕 JList 上的 selectionModel(仅支持基于索引的选择访问)的便捷包装方法。不支持为每个值 设置多项选择。如果你真的想要它,你必须自己实现一个方便的方法。基本上,您必须遍历模型的元素,直到找到相应的索引并调用基于索引的方法,例如:

public void setSelectedValues(JList list, Object... values) {
list.clearSelection();
for (Object value : values) {
int index = getIndex(list.getModel(), value);
if (index >=0) {
list.addSelectionInterval(index, index);
}
}
list.ensureIndexIsVisible(list.getSelectedIndex());
}

public int getIndex(ListModel model, Object value) {
if (value == null) return -1;
if (model instanceof DefaultListModel) {
return ((DefaultListModel) model).indexOf(value);
}
for (int i = 0; i < model.getSize(); i++) {
if (value.equals(model.getElementAt(i))) return i;
}
return -1;
}

关于java - 如何使用 setSelectedValue 将多个项目设置为在 JList 中选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5961343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com