for(JCheckBox currentCheckBox : imagesToBeImportedCheckBox){
if(currentCheckBox.isSelected()){
System.out.println("The text Box selected for removing are"+currentCheckBox.getText());
}
}
for(JCheckBox currentCheckBox : imagesToBeImportedCheckBox){
if(currentCheckBox.isSelected()){
System.out.println("I am entering in the loop where this image has to be removed "+currentCheckBox.getText());
imagesToBeImported.remove(currentCheckBox.getText());
}
}
for(ResourceListObject currentImage : imagesToBeImported){
System.out.println("After removing the images left are "+currentImage.getName());
}
这是输出
选择删除的文本框是aix71b
选择删除的文本框是Migration-image
我正在进入必须删除此图像的循环aix71b
我正在进入必须删除此图像的循环中迁移图像
删除后剩下的图像是aix71b
删除后剩下的图像是Migration-image
答案 0 :(得分:5)
看看你的代码,很有可能,这就是问题所在。
imagesToBeImported.remove(currentCheckBox.getText());
这会尝试从集合String
中删除名为aix71b
的{{1>}( getText()提示我在此处说出字符串},但是集合{{ 1}}包含imagesToBeImported
类型的元素。
这就是因为imagesToBeImported
与ResourceListObject
的类型不同而没有从您的收藏集中移除任何内容的原因。
编辑: - (您可以使用以下两种方式从列表中删除)
您可以为String
的每个元素遍历ResourceListObject
(使用迭代器),并在imagesToBeImported
等于imagesToBeImportedCheckBox
时从imagesToBeImported
移除元素resourceListObjectElement.getName()
。
否则,您可以根据其中的currentCheckBox.getText()
字段覆盖equals
中的ResourceListObject
方法,以便您可以执行以下操作,将其从{name
移除1}}。
imagesToBeImported
答案 1 :(得分:0)
问题是currentCheckBox.getText()
和currentImage.getName()
不是完全相同的对象 - 即使值相同,equals
方法也不正确。