Obtener Id de un JComboBox Java

Obtener Id de un JComboBox Java

Hay dos formas de llenar de datos a un JComboBox, la manera más sencilla y común es llenado el Combo mediante el addItem y la otra manera mediante el modelo addElement, la primera opción te limita a solo seleccionar el objeto, en cambio el segundo es más modificable.


Si por ejemplo llenas tu JComboBox de una base de datos, es muy probable que necesites obtener el id asociado al dato, para ello veremos un ejemplo que te sera de utilidad, sobre Departamentos.

La Clase DepartamentoVO:

public class DepartamentoVO {
    
    private int idDepartamento;
    private String departamento;
    
    public DepartamentoVO(){}
    
    public DepartamentoVO(int id, String nombre){
        this.idDepartamento = id;
        this.departamento = nombre;
    }

    public int getIdDepartamento() {
        return idDepartamento;
    }

    public void setIdDepartamento(int idDepartamento) {
        this.idDepartamento = idDepartamento;
    }

    public String getDepartamento() {
        return departamento;
    }

    public void setDepartamento(String departamento) {
        this.departamento = departamento;
    }
    
    public String toString(){
        return this.departamento;
    }
    
}


Luego para llenar el JComboBox usare el modelo "DefaultComboBoxModel", por ejemplo:

public Ver_Combo() {
        initComponents();
        
        DefaultComboBoxModel value = new DefaultComboBoxModel();
        jComboBox1.setModel(value);
        
        value.addElement(new DepartamentoVO(1, "Lima"));
        value.addElement(new DepartamentoVO(5, "Amazonas"));
        value.addElement(new DepartamentoVO(2, "Arequipa"));
    }

Bien lo llene algunos datos de ejemplo, pero puede ser de cualquier fuente, por ejemplo base de datos, arreglos, ArrayList....

Ahora para obtener el id asociado al dato seleccionado, debemos ir al evento jComboBox1ItemStateChanged y agregar lo siguiente:

DepartamentoVO dp = (DepartamentoVO)jComboBox1.getSelectedItem();
        int codigo = dp.getIdDepartamento();
        String nombre = dp.getDepartamento();
        
        System.out.println(codigo+" - "+nombre);

Vemos que convertimos la selección del JComboBox en DepartamentoVO, para así extraer los datos según la estructura del modelo que lo asignamos al principio, ya desde luego mostramos el codigo y nombre.


Comentarios

  1. hola quiciera saber la manera de hacer inversa este codigo me explico
    tengo el jcombobox cargados con objetos con sus respectivos id y descripcion agrego el id a la base de datos bien hasta hay....

    lo que queiero es que cuando haga una consulta me seleccione en el combobox o busque el objeto dentro del combobox con su respetivo id

    gracias mi correo es wympa2011@gmail.com porfa o enviame un link donde este

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Convertir jar a ejecutable exe con Launch4j

Librería para cambiar apariencia ventana y frames Java

Component mscomctl.ocx or one of its dependencies not correctly registered