从JList中删除所选项目

时间:2012-02-22 20:46:39

标签: java swing jlist

有人可以告诉我从JList删除所选项目的简短方法吗?

我在google和这里搜索过,但我找到了很多方法。我应该使用哪种方式?

3 个答案:

答案 0 :(得分:24)

正如@Andreas_D所说,数据居中,更抽象的ListModel就是解决方案。这可以是DefaultListModel。您应该在JList中显式设置模型。 所以(感谢@kleopatra的评论):

DefaultListModel model = (DefaultListModel) jlist.getModel();
int selectedIndex = jlist.getSelectedIndex();
if (selectedIndex != -1) {
    model.remove(selectedIndex);
}

DefaultListModel中有几个remove...方法。 顺便说一句,这是一个很好的问题,因为API(ListModel)中没有直接的解决方案。

答案 1 :(得分:3)

JList组件由列表模型支持。因此,从列表视图中删除项目的唯一推荐方法是从模型中删除它(并刷新视图)。

答案 2 :(得分:0)

从模型中删除元素后,该元素也将从列表中删除。您可以参阅这篇JList文章以了解更多信息。由于列表由模型支持,如果您对模型执行任何操作,它也会反映在列表上。您只需要刷新视图即可。