Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con JComboBox y DefaultComboBoxModel

Estas en el tema de Problema con JComboBox y DefaultComboBoxModel en el foro de Java en Foros del Web. Cordial Saludo Actualmente necesito crear un JComboBox el cual debe traer los datos de una base de datos (de cargos), para que al momento de ...
  #1 (permalink)  
Antiguo 27/02/2012, 10:19
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 2
Problema con JComboBox y DefaultComboBoxModel

Cordial Saludo

Actualmente necesito crear un JComboBox el cual debe traer los datos de una base de datos (de cargos), para que al momento de seleccionar determinado cargo se pase su respectivo "id", más que este no se visualice, ya que solo se necesita para ser guardado posteriormente, me he documentado acerca de la clase JComboBox y la clase DefaultComboBoxModel, de igual forma he revisado ejemplos de los siguientes enlaces:

http://www.tumundojava.blogspot.com/
http://www.forosdelweb.com/f45/relle...bo-box-563305/
http://www.forosdelweb.com/f45/obten...mbobox-876851/
http://www.garabatoslinux.info/2011/...s-basicos.html

Por lo cual mi código ha quedado así:

listadoCargos = new JComboBox();
modeloCombo = new DefaultComboBoxModel();
listadoCargos.setModel(modeloCombo);
for (int i = 0; i < id.listaCargos.length; i++) {
modeloCombo.addElement(id.listaCargos[i]);
}

Con el código anterior logro crear un JComboBox en el cual se visualizan los nombres de los cargos, más se ignoran los "id" (ver http://www.mediafire.com/?1264jaf7y8wio55).

listadoCargos = new JComboBox();
modeloCombo = new DefaultComboBoxModel();
listadoCargos.setModel(modeloCombo);
for (int i = 0; i < id.listaIdCargos.length; i++) {
modeloCombo.addElement(id.listaIdCargos[i]);
}

Con el código anterior logro crear un JComboBox en el cual se visualizan los "id" de los cargos, más se ignoran los nombres (ver http://www.mediafire.com/?mufwlb2y0hgka1r).

listadoCargos = new JComboBox();
modeloCombo = new DefaultComboBoxModel();
listadoCargos.setModel(modeloCombo);
for (int i = 0; i < id.listaIdCargos.length; i++) {
modeloCombo.addElement(new cargo(id.listaIdCargos[i], id.listaCargos[i]));
}

Con el código anterior se supone (según lo leído en los enlaces ya mencionados) que debería lograr crear un JComboBox en el cual se visualizan los nombres de los cargos, más como valor se pasaria el "id" del cargo seleccionado y no su nombre, más lo que se visualiza es lo siguiente http://www.mediafire.com/?i9n4122skv78e1c (aclaro, "sensordactil" es el nombre del paquete donde tengo las clases y "cargo" es simplemente una clase con dos atributos privados: "id" y "nombre", su respectivo constructor, métodos getters y setters, a continuación escribo el código de esta clase, así mismo "id" es un objeto creado a partir de la clase "model", la cual contiene los atributos "listaIdCargos" y "listaCargos", los cuales son arrays en los que guardo respectivamente el "id" y el nombre de cada cargo, no profundizare en esta clase, ya que solo se encarga de generar la consulta SQL y no tengo problema con ella, al menos eso creo).




/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sensordactil;

/**
*
* @author Luis Guillermo Trejo
*/
public class cargo {

private String id;
private String nombre;

public cargo(String id, String nombre) {
this.id = id;
this.nombre = nombre;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

}




Por lo cual me veo en la necesidad de recurrir a ustedes, para saber si alguno conoce la solución a mi problema.

Quedo atento a sus comentarios.

Muchas gracias.

Última edición por GUILLHERMOSOFT; 27/02/2012 a las 10:41
  #2 (permalink)  
Antiguo 10/09/2012, 05:29
 
Fecha de Ingreso: septiembre-2012
Mensajes: 1
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema con JComboBox y DefaultComboBoxModel

Quizás la respuesta venga un poco tarde, pero puede servir a quienes tengan un problema similar.
Lo primero en aclarar es que los combos en java reciben y devuelven objetos por lo que es perfectamente valido añadirle al DefautComboBoxModel instancias de tu clase cargo (o de cualquier otra clase), por lo tanto en tu código no hay error. Lo que tienes que tener en cuenta es que lo que el combo muestra en su lista es el toString de la clase por lo tanto si lo que quieres es mostrar solamente el nombre lo único que tienes que hacer es sobreescribir el metodo toString en la clase cargo y poner lo que quieras mostrar ej. return nombre; luego al seleccionar algun elemento del combo lo que te esta devolviendo es el objeto completo, osea si lo que necesitas es el atributo id deberias utilizar el metodo getId.
Espero que la respuesta sea de utilidad

Etiquetas: clase, jcombobox, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:18.