【问题标题】:removing element from a ListModel removes wrong element从 ListModel 中删除元素会删除错误的元素
【发布时间】:2014-05-11 21:21:23
【问题描述】:

我不知道为什么会这样,如果需要,我会查看代码的其他部分,但我真的更喜欢它是别的东西......

假设我的 JList 中有以下项目

啤酒

奔驰

可口可乐

和 str == "Mercedes",它将删除除此项目之外的所有内容。

为什么?

for(int i=0;i<listModel.getSize();i++){
        if (listModel.elementAt(i).equals(str))
            listModel.remove(i);
    }

【问题讨论】:

  • 我在找到要删除的项目后尝试破坏并且它有效,现在它适用于我,因为每次循环运行时我只需要删除 1 个项目,但如果我没有呢?我在某处听说您应该复制列表以删除元素……这是真的吗?我该怎么做?

标签: java defaultlistmodel


【解决方案1】:

你可以试试:

listModel.removeElement(str)

别忘了检查字符串是否有空值!

【讨论】:

  • 我试过交叉手指,但它不起作用:( ...我也试过 removeElementAt,这两种方法都采用 int 参数(至少 eclipse 是这么说的..)
  • 我在 JList 中没有看到这个方法:docs.oracle.com/javase/7/docs/api/javax/swing/JList.html。您确定您的示例是 JList,而不是 java.util.List 吗?
  • DefaultListModel 对象
  • 好吧,其实 JList 中有一个 remove(int index) 方法,我的错。我会相应地更新我的答案
猜你喜欢
  • 1970-01-01
  • 2013-02-14
  • 2016-07-08
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多