Vérifier si un article existe déjà dans un JComboBox?

y a-t-il un moyen facile de vérifier si un élément existe déjà dans un JComboBox en plus d'itérer à travers ce dernier? Voici ce que je veux faire:

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

Merci!

19
demandé sur BJ Peter DeLaCruz 2012-01-17 21:31:58

3 réponses

un DefaultComboBoxModel et appeler getIndexOf(item) pour vérifier si un élément existe déjà. Cette méthode sera de retour -1 si l'élément n'existe pas. Voici un exemple de code:

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

(notez que sous le capot,indexOf n'en boucle sur la liste des articles pour trouver le produit que vous recherchez.)

28
répondu dogbane 2012-01-17 17:41:36

Vérifier avec ceci:

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

ou

if(((DefaultComboBoxModel)box.getModel()).getIndexOf(toAdd) < 0) {
  box.addItem(toAdd );
}
3
répondu chepe lucho 2016-04-16 23:42:00

mise à Jour:

myComboBox.setSelectedIndex(-1);
String strItem="exists";   
myComboBox.setSelectedItem(strItem);   
if(myComboBox.getSelectedIndex()>-1){ 
    //exists  
}
-2
répondu Ninja Coding 2015-09-08 18:16:38