La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Java/925190-Llenar-un-JComboBox-en-java.html

Llenar un JComboBox en java

Llenar un JComboBox en java

Publicado por giovanny quintero (2 intervenciones) el 14/01/2008 21:52:26
Buenas Buenas:
Tengo un problemita, es q tengo un metodo que me llena un combobox con los datos de una BD, la tabla es un barrios y tiene el codigo y nombre, en el combo muestro los nombres, pero deseo q lo q guarde es el codigo, el cual voy a insertarlo a otra tabla, la cual es empleados, como hago para guardar este valor para poder insertarlo a la tabla empleados.

Este es el codigo que tengo, ayudenme para colocarle esa instruccion y salir con eso. Si la dejo como esta lo q guarda es el del evento getSelectedIndex, el cual suma cada vez mas pero desde 0 y deseo q guarde es el valor del codigo del barrio.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public JComboBox llenarBarrio()
{
    JComboBox combo =new JComboBox();
    combo.addItem(" ");
    try
    {
      ResultSet rs=null;
      rs = Conexion.abrirTabla("Select * From barrio Order by barrio");
      if(rs==null) return combo;
      rs.first();
      do
        {
          combo.addItem(rs.getInt("codigo") + rs.getString("barrio"));
          //combo.getItemCount(rs.getInt("codigo"));
        } while(rs.next());
    } catch(Exception err){err.printStackTrace();}
      return combo;
}

Cualquier ayuda con esta incidencia se los agradecere.....
sin imagen de perfil

RE:Llenar un JComboBox en java

Publicado por chuidiang (950 intervenciones) el 15/01/2008 10:22:27
Hola:

El Jcombobox no puede guardar el codigo. Tienes dos opciones

- Haz la consulta de codigos y nombres y guardalos ambos en usa estructura. Por ejemplo, puedes usar un Hashtable en el que la clave sea el codigo y el valor el nombre. Luego pudes obtener de ella el codigo a partir del nombre seleccionado en el JCombobox.

- Una vez seleccionado el nombre en el JCombox, realiza una nueva consulta sql para consutar el codigo, o bien una sql mas compleja en la insercion estilo inserta codigo where nombre=nombreseleccionado.

Se bueno.

RE:Llenar un JComboBox en java

Publicado por karem (1 intervención) el 26/02/2009 22:51:50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if(productos.getSelectedItem()=="Lapiz")
{
    marca.removeAllItems();
    marca.addItem("BIC");
    marca.addItem("Berol");
    marca.addItem("Norma");
}
 
else if (productos.getSelectedItem()=="Libreta")
{
 
    marca.removeAllItems();
    marca.addItem("Scribe");
    marca.addItem("Norma");
    marca.addItem("VIC");
}
 
else if (productos.getSelectedItem()=="Colores")
{
 
    marca.removeAllItems();
    marca.addItem("Blanca Nieves");
    marca.addItem("Norma");
    marca.addItem("Mirado");
}

RE:Llenar un JComboBox en java

Publicado por Oscar Mauricio Gomez Acevedo (47 intervenciones) el 26/01/2008 00:58:47
Personalmente usaria tu codigo igual, lo unico que haria seria no un resultset global sino uno para el combo en este caso seria rsbarrio

y cuando fuera a tomar el dato que tiene el combo haria esto

String cod_barrio=rsbarrio.absolute(combo.getSelectedIndex()+1);

y asi tendrias el codigo del barrio sin problemas.

Espero te sirva

RE:Llenar un JComboBox en java

Publicado por Jhonatan (1 intervención) el 19/01/2013 22:55:29
Y que pasa si el código no siempre coincide por ejemplo
el select llenaria así

1 - a
2 - b
3 - c

de acuerdo al asignarle selectedindex()+1 coincide con el elemento

pero que pasa si elimino el elemento nro 2
quedaria
1 - a
2 - c

y el código de c no es 2 ..
o sea no siempre se va a cumplir
sin imagen de perfil

RE:Llenar un JComboBox en java

Publicado por FerM. (1 intervención) el 27/02/2014 02:56:52
genera un combo que cargue de la bd

RE:Llenar un JComboBox en java

Publicado por Carlos (1 intervención) el 25/04/2013 22:46:24
Hola amigo tengo el mismo problema como quedaria lo que detallas tu, cuando te refieres

no un resultset global sino uno para el combo en este caso seria rsbarri ???

Gracias

RE:Llenar un JComboBox en java

Publicado por siomara (1 intervención) el 15/03/2015 22:41:43
Acuerdate que todo ese codigo ocurrira en el evento click de tu primer combobox

RE:Llenar un JComboBox en java

Publicado por s (1 intervención) el 09/06/2010 01:55:55
pene
Imágen de perfil de Walter Alberto

RE:Llenar un JComboBox en java

Publicado por Walter Alberto (10 intervenciones) el 24/07/2013 06:06:02
Tengo el mismo problema, deseo guardar en una tabla proveedores la relación (el id) de la tabla localidad, no su nombre. Lo logico es usar un combox
Alguien le encontro solución?
No hay forma de vincular el SetResult al combo para que cuando se elija la fila se mueva el cursor?

Saludos

RE:Llenar un JComboBox en java

Publicado por violet (1 intervención) el 06/02/2015 01:03:12
hola yo lo que hice fue primero obtener el valor del combobox mas o menos asi String tt=(String) nombrecombo.getSelectedItem();
guardarlo en una variable de tipo string
y despues genere una consulta similar a esta String consulta="select id_a_guardar from tablar where nombre='"+tt+"'";
y por ultimo la guarde asi Statement st=(Statement)miConexion.createStatement();
rsd=st.executeQuery(consulta);
String id=(rsd.getString("id_a_guardar"));
y ya para poder ingresar el id insertas la variable id.
bueno espero que me halla explicado bien

Llenar un JComboBox en java

Publicado por Marcos (1 intervención) el 09/11/2013 22:54:22
Toma el String del comboBox y ponele charAt(0), entonces va a agarrar el primer caracter del String del combo, que por lo que veo sería el numero. A ese valor lo pones en una variable char y despues declara una variable int cuyo valor sea el caracter, restandole 48, para obtener el valor entero de ese char.

valor a un JcomboBox

Publicado por daniel (1 intervención) el 29/11/2020 23:51:12
como se imprime un valor de texto a un JcomboBox en Java (id: netbeans)

Llenar un JComboBox en java

Publicado por Alfonso Ortega (1 intervención) el 30/11/2020 04:35:05
Hola esto es algo que hice para solucionar un problema que tuve hace ya tiempo, ojala te sea de utilidad.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
*Clase que devuelve los roles de la base de datos
*/
public sealed class Impreso  {
    static public Map<String, Integer> obtenerRoles() {
        var MapaEstados = new TreeMapString, Integer>();
        var conectando = obtenerConexion();
        try (conectando) {
            try (var preparesta = conectando.prepareStatement(CONSULTAROLES)) {
                try (var resultados = preparesta.executeQuery()) {
                    while (resultados.next()) {
                        var ides = resultados.getInt(1);
                        var nombreRoles = resultados.getString(2);
                        MapaEstados.put(ides, nombreRoles);
                    }
                    if (MapaEstados.isEmpty()) {
                        System.out.println("No se cargaron los registros");
                        return null;
                    } else {
                        return MapaEstados;
                    }
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(ControlCrearUsuario.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
*
* Se hace uso de la clase estatica para obtener los roles
*en esta clase se hace uso de la colección TreeMap para
*no permitir registros duplicados que vengan de la base de datos
*Se puede obtener la clave valor de TreeMap para llenar
*el JCombobox
*/
var llenaRoles = Impreso.obtenerRoles();
llenaRoles
                .entrySet()
                .stream()
                .sorted(Map.Entry.comparingByKey())
                .forEachOrdered(x -> {
                    System.out.println(x.getKey());
                    var usuarios = x.getKey();
                    //Llenado JCombobox con los roles
                    tipoUsuario.addItem(usuarios);
                });
 
/*
*
*Colocamos el evento al JCombobox
*Para obtener el id
*/
botonGuardar.addActionListener(e->{
    //Obtenemos el id del role
    var ids_roles = llenaRoles.get(String.valueOf(tipoUsuario.getSelectedItem()));
   //Lo podemos imprimir en consola
    System.out.printf("El id del role es: %d%n",ids_roles);
});


Saludos!