检查JComboBox中是否已存在某个项目?

时间:2012-01-17 17:31:58

标签: java 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);
 }

谢谢!

3 个答案:

答案 0 :(得分:29)

使用DefaultComboBoxModel并致电getIndexOf(item)检查项目是否已存在。如果项目不存在,此方法将返回-1。以下是一些示例代码:

DefaultComboBoxModel model = new DefaultComboBoxModel(new String[] {"foo", "bar"});
JComboBox box = new JComboBox(model);

String toAdd = "baz";
//does it exist?
if(model.getIndexOf(toAdd) == -1 ) {
    model.addElement(toAdd);
}

(请注意,引擎盖下,indexOf会循环遍历项目列表以查找您要查找的项目。)

答案 1 :(得分:5)

检查:

if(((DefaultComboBoxModel)box.getModel()).getIndexOf(toAdd) == -1) {
  box.addItem(toAdd );
}

if(((DefaultComboBoxModel)box.getModel()).getIndexOf(toAdd) < 0) {
  box.addItem(toAdd );
}

答案 2 :(得分:-2)

更新

myComboBox.setSelectedIndex(-1);
String strItem="exists";   
myComboBox.setSelectedItem(strItem);   
if(myComboBox.getSelectedIndex()>-1){ 
    //exists  
}