从JList中删除所选项目

Bul*_*lit 12 java swing jlist

谁能告诉我一个简短的方法从我删除所选项目JList

我搜索谷歌和这里,但我找到了很多方法.我应该使用哪种方式?

Joo*_*gen 25

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

DefaultListModel model = (DefaultListModel) jlist.getModel();
int selectedIndex = jlist.getSelectedIndex();
if (selectedIndex != -1) {
    model.remove(selectedIndex);
}
Run Code Online (Sandbox Code Playgroud)

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

  • 同意:ListModel是所有视图集合接口中最小的(既不可变也不可修改) - 但这不是OP问题:他/她声明已阅读教程章节(显示与此处相同的样本 - 减去检查是否被选中)注意:JList的默认模型是_not_一个DefaultListModel,你必须明确地设置它. (2认同)