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