Método setSelectedItem en una jComboBox


Establecer un elemento seleccionado en una combobox en Java

En un componente Swing JComboBox (un campo desplegable), se puede establecer un elemento seleccionado por defecto con los métodos setSelectedIndex o setSelectedItem.

Si el combobox muestra un listado de Strings, se puede utilizar setSelectedItem y pasarle por parámetro la String que se quiere marcar. El problema viene cuando el componente desplegable contiene una lista de objetos distintos de una String. El método setSelectedItem no funcionará a menos que hagamos algunos cambios.

Ejemplo

Supongamos que se tiene una combobox con un listado de objetos que representan provincias. Cada objeto provincia tiene dos parámetros, un identificador numérico (el valor que queremos obtener) y un texto (la provincia que queremos que el usuario vea).

En la clase Provincia deberemos sobreescribir los métodos equals y hashcode para adaptarlos a nuestro objeto y para que al buscar un objeto equivalente lo encuentre.

public class Provincia {
    public String texto;
    public int id;
    public String toString() {
        return texto;
    }
    @Override  
    public boolean equals(Object o) {
        if (o == null) {
            return false;
        }
        if (this == o) {
            return true;
        }
        if (!(o instanceof Provincia)) {
            return false;
        }
        Provincia provincia = (Provincia) o;
        if (id != provincia.id) {
            return false;
        }
        if (texto != null ? !texto.equals(provincia.texto) : provincia.texto != null) {
            return false;
        }
        return true;
    }
    @Override
    public int hashCode() {
        int hash = 3;
        hash = 89 * hash + (this.texto != null ? this.texto.hashCode() : 0);
        hash = 89 * hash + this.id;
        return hash;
    }
}

Ahora con el siguiente código se establece el elemento que se quiera que esté seleccionado por defecto definiendo unos valores que estén en la lista.

Provincia elemento = new Provincia();
elemento.id = 3;
elemento.text = "Barcelona";                
this.cmbprovincia.setSelectedItem(elemento);

Detalles sobre este artículo

Enviado por WebTutoriales:
Fecha Publicación: 02.05.2008
Este artículos ha sido visto 157 veces.
Vota este artículo:

  • Currently 5.00/5
  • 1
  • 2
  • 3
  • 4
  • 5

5.0/5 de 1 voto

Otros Artículos Relacionados

Enlaza Este Artículo Desde tu Web

El enlace se verá así: Método setSelectedItem en una jComboBox

Comentarios

Si tienes algún comentario o sugerencia, utiliza el formulario. Enviar Comentario

  COMENTARIOS
No se han escrito comentarios para este artículo.