【问题标题】:Selecting all items in a list选择列表中的所有项目
【发布时间】:2013-10-14 22:56:02
【问题描述】:

我正在处理Java Swing List,我想使用jCheckBox 选择它的所有值或项目。我尝试在谷歌上搜索一些答案,但我几乎找不到任何答案。

我希望我能从这里得到答案。

谢谢。

编辑:

在我的挥杆清单中,我有这些项目,例如:

Item 1
Item 2
Item 3

我有一个复选框标签为“Select All”。

所以我想要的是当我的复选框被选中/选中时,swing 列表中的所有项目都将被一次选中。

【问题讨论】:

  • 你有没有尝试过?
  • 到目前为止,我还没有尝试过。
  • 提示:浏览 api 文档,了解如何选择一系列项目,然后推断所有项目...
  • 添加了更多细节,请检查。
  • 类似JList#getSelectionModel#setSelectionInterval?

标签: java swing list


【解决方案1】:

你想要 JList 的

" void setSelectedIndices(int[] 索引) 将选择更改为给定数组指定的索引集。"

方法。不要忘记激活允许多选的属性还记得取消选中该框时取消东西!

祝你好运

【讨论】:

  • ehhh ...不,错误的方法(你不想创建一个包含所有索引的数组;-)
【解决方案2】:

为列表大小创建一个 setter 和 getter。 getter 将是 setSelectionInterval(start, end); 的终点;

JList list = new JList();
private void insertItem(){
DefaultListModel<String> list_model = new DefaultListModel<String>();
String listData[] = {"Fish", "Pork", "Chicken", "Curry"};
for(int i = 0; i < listData.length; i++)
list_model.addElement(listData[i]);
list.setModel(list_model); setListSize(list.size());
}

foodCb.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent evt) {
if(evt.getStateChange() == ItemEvent.SELECTED)
list.setSelectionInterval(0, getListSize());
else
list.clearSelection();
}
});

int list_size = 0; private void setListSize(int size){ list_size = size; }

private void getListSize() { return list_size; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多