java jcombobox

java - ¿Comprobando si un artículo ya existe en un JComboBox?



(3)

¿Hay una manera fácil de verificar si un elemento ya existe en un JComboBox además de iterar a través de este último? Esto es lo que quiero hacer:

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

¡Gracias!


Actualizar:

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


Compruebe con esto:

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

o

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


Use un DefaultComboBoxModel y llame a getIndexOf(item) para verificar si un elemento ya existe. Este método devolverá -1 si el artículo no existe. Aquí hay un código de ejemplo:

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

(Tenga en cuenta que bajo el capó, indexOf la lista de elementos para encontrar el elemento que está buscando).