cargar un jcombobox desde un resulset con Netbeans 5.0 RC2

echavez
19 de Junio del 2009
Tengo un pequeño problema al cargar los items en un JComboBox desde una tabla de una BD en Postgres, con Netbeans 5.0 RC2.
Yo uso el siguiente codigo para cargar los registros en el JComboBox:

resultset datPaises = Sentencia.executeQuery("Select idpais, pais from sysware.paises;");
while (datPaises.next()) {
//cmbPaises es el JComboBox
cmbPaises.insertItemAt(datPaises.getString("pais"),datPaises.getInt("idpais"));
}

Bueno, yo puedo ver los registros en el JComboBox
cuando ejecuto el formulario , pero el JComboBox tiene por defecto en la propiedad "modal" los valores "Item 1, Item 2, Item 3, Item 4", y estos valores aparecen mezclados con los valores que cargo desde mi resulset al JComboBox. Si yo borro estos valores por defecto en la propiedad "modal", cuando vuelvo a ejecutar el formulario , ya no se cargan los datos del resulset al JComboBox...

Yo uso el metodo "insertItemAt" para agregar los items en el jcombobox porque necesito tanto el campo "pais" como el campo primary key "idpais".

Tampoco funciona si uso el metodo "removeAllItems()" antes de cargar los registros al jcombobox...

Espero que puedan ayudarme y desde ya gracias.

saludos

Alberto

kunchito
19 de Junio del 2009
Hola:
Prueba con cargar el resultset a una lista de objetos del tipo "paises" y luego recorres esta lista de objetos sacando de los objetos el atributo "idPais" y los pasas al comboBox con el metodo addItem( ). no olvides limpiar antes la lista con el metodo clear( ).
Saludos

echavez
19 de Junio del 2009
si es que uso el addItem creo q no voy a poder utilizar la clave primaria de mi tabla..

echavez
19 de Junio del 2009
gracias d vuelta x contestar
podrias ser tan amable, si tendrias algun codigo que hace lo q me estabas explicando, t lo voy a agradecer

saludos

alberto

Vcitor
19 de Junio del 2009
Cambia tu sentecia While :

while( Resultado.isBeforeFirst()!=true )
{
Lista.addItem(Resultado.getString(3));
System.out.println(Resultado.isFirst());
Resultado.previous();
//System.out.println(Resultado.getString(3));
}