有人可以告诉我从JList
删除所选项目的简短方法吗?
我在google和这里搜索过,但我找到了很多方法。我应该使用哪种方式?
答案 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文章以了解更多信息。由于列表由模型支持,如果您对模型执行任何操作,它也会反映在列表上。您只需要刷新视图即可。