有没有简单的方法来检查一个项目是否已经存在于JComboBox中,除了迭代后者?这是我想要做的:检查一个项目是否已经存在于JComboBox中?
Item item = ...;
boolean exists = false;
for (int index = 0; index < myComboBox.getItemCount() && !exists; index++) {
if (item.equals(myComboBox.getItemAt(index)) {
exists = true;
}
}
if (!exists) {
myComboBox.addItem(item);
}
谢谢!
+1,但我很惊讶,在API中没有注意到'-1'返回值。 – mre 2012-01-17 17:52:35
您也可以创建一个DefaultComboBoxModel子类来覆盖addElement方法,并使用getIndexOf方法在调用addElement的超类版本之前检查是否存在重复。这样,您不必手动调用重复数据删除代码,而且ComboBox将自动为添加到其中的每个项目执行所有工作。 – Dyndrilliac 2014-03-01 17:39:10
@mre如果你看看DefaultComboBoxModel的源代码,你会看到'int getIndexOf(Object anObject)'return'object.indexOf(anObject)'。而'objects'是'Vector'。 – 1ac0 2014-11-21 16:12:31