Obtener el codigo (primary key) de un combobox

publicado por: Anonymous

introducir la descripción de la imagen aquí

Quisiera saber como obtener el codigo de una combobox al momento de registrar, y se guarde en la base de datos con su codigo que corresponde,no la descripcion.
Este es elcodigo que lleno los combos:

//METODO PARA CARGAR EL COMBOBOX "cboNivelArchivo"
@SuppressWarnings({ "unchecked", "rawtypes" })
void CargarComboNivelArchivo() {
    Connection cn = null;
    PreparedStatement pstm = null;
    ResultSet rs = null;
    try {
        combo = new DefaultComboBoxModel();
        cn = new MySqlConexion().getConectar();
        String sql = "select * from TB_NIVEL_ARCHIVO_SA";
        pstm = cn.prepareStatement(sql);
        rs = pstm.executeQuery();
        while (rs.next()) {
            combo.addElement(rs.getString(2));
        }
        cboNivelArchivo.removeAllItems();
        cboNivelArchivo.setModel(combo);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (rs != null)
                rs.close();
            if (pstm != null)
                pstm.close();
            if (cn != null)
                cn.close();
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }
}

solución

Para trabajar con más de un valor dentro de un JComboBox te recomiendo que hagas una clase que contenga el tipo de Objeto al cual quieres acceder despues de la seleccion.

public class Objeto {
    private String nombre;
    private String codigo;

    public Objeto (String nombre, String codigo) {
        this.nombre = nombre;
        this.codigo = codigo;
    }

    public String getNombre() {
        return nombre;
    }

    public String getCodigo() {
        return codigo;
    }

    @Override
    public String toString(){
      return nombre;
    }
}

Luego cuando quieras agregar un objeto a tu ComboBox

comboBox.addItem(new Objeto (rs.getString(1), rs.getString(2)));

Y finalmente cuando quieras obtener el o los valores de lo que se selecciono en tu comboBox

EDIT

Como tu comboBox es del tipo Object cuando el usuario selecciona un item, tu puedes obtener getSelectedItem() y lo guardas en una variable del tipo Object, asi puedes acceder a sus propiedades.

Objeto object = comboBox.getSelectedItem();
String codigo = ((Objeto)object).getCodigo();
String nombre = ((Objeto)object).getNombre();

EDIT 2

Para verificar si hay o no un item seleccionado en tu comboBox :

if (comboBox.getSelectedItem() == null) {
    //Error
} 

EDIT 3

Como tu quieres tener un valor “de referencia” en tu comboBox por ejemplo “Seleccione”, te aconsejo que lo agregues tambien como un objeto.

comboBox.addItem(new Objeto ("Seleccione....", "0"));

Y para evaluar si este fue seleccionado (por ende no debería servir y mandarle una alerta al usuario) simplemente verificas

Objeto object = comboBox.getSelectedItem();
String codigo = ((Objeto)object).getCodigo();
String nombre = ((Objeto)object).getNombre();
if(codigo.equeals("0")){
   //error
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *