除了迭代后者之外,还有一种简单的方法可以检查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);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
dog*_*ane 32
使用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);
}
Run Code Online (Sandbox Code Playgroud)
(请注意,引擎盖下方indexOf会覆盖项目列表以查找您要查找的项目.)
检查一下:
if(((DefaultComboBoxModel)box.getModel()).getIndexOf(toAdd) == -1) {
box.addItem(toAdd );
}
Run Code Online (Sandbox Code Playgroud)
要么
if(((DefaultComboBoxModel)box.getModel()).getIndexOf(toAdd) < 0) {
box.addItem(toAdd );
}
Run Code Online (Sandbox Code Playgroud)