检查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); } 

谢谢!

使用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会循环遍历项目列表以查找您要查找的项目。)

检查一下:

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

要么

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

更新:

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