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

Obtener id de bd al seleccionar item de jcombobox

Estas en el tema de Obtener id de bd al seleccionar item de jcombobox en el foro de Java en Foros del Web. Tengo un código que me ayuda a llevar con jcombobox y funciona bien, pero no logro ver como hacer que se incluya el id de ...
  #1 (permalink)  
Antiguo 14/01/2011, 18:22
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 14 años
Puntos: 6
Obtener id de bd al seleccionar item de jcombobox

Tengo un código que me ayuda a llevar con jcombobox y funciona bien, pero no logro ver como hacer que se incluya el id de la base de datos al combobox, no para que se muestre, sino que al seleccionar un item me de el id que esta relacionada con otras tablas en la base.

el código es este:
Código java:
Ver original
  1. try {      
  2.       Conexion();
  3.       Statement stmt = conexion.createStatement();
  4.       ResultSet rs = stmt.executeQuery("SELECT id,Nombre FROM Tabla1 ORDER BY id ASC");
  5.        
  6.       while (rs.next()) {
  7.          cmbCombo.addItem(rs.getString("Nombre"));
  8.       }
  9.       rs.close();
  10.       conexion.close();
  11.       } catch (Exception ex) {
  12.          ex.printStackTrace();
  13.       }

He leído por ahí que con getSelectedIndex(), pero eso me da la posición del item seleccionado, no el id de la base de datos que necesito.
  #2 (permalink)  
Antiguo 14/01/2011, 20:36
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Obtener id de bd al seleccionar item de jcombobox

Hola,

No estoy seguro si te sea de utilidad en este caso:
http://www.forosdelweb.com/f45/relle...bo-box-563305/

Lo que hace es llenar un JComboBox con los valores de un ResultSet que tienen que tener un campo numérico y un campo alfanumérico, lo que se muestra en el el JComboBox es el valor alfanumérico (la descripción) pero puedes recuperar el campo numérico (el código) en cualquier momento para insertarlo en otra tabla o utilizarlo en otro formulario, reporte, consulta, etc.

Saludos,
  #3 (permalink)  
Antiguo 14/01/2011, 23:19
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 21 años, 2 meses
Puntos: 4
Respuesta: Obtener id de bd al seleccionar item de jcombobox

Definitivamente la unica forma de lograrlo, es implementando tu propio model de JComboBox.

HackmanC te envio la solución.

Si necesitas mejorar el JComboBox, tendrás que buscar info sobre:

Combo
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JComboBox.html

Model
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/ComboBoxModel.html

Con el Model puedes incluso puedes controlar los eventos que recibe el JComboBox.

Render
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/ListCellRenderer.html


Saludos.
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #4 (permalink)  
Antiguo 15/01/2011, 14:06
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 14 años
Puntos: 6
Obtener id de bd al seleccionar item de jcombobox[Solucionado]

Gracias HackmanC y dackiller por sus respuestas, tengo pocos días con java por lo que habían cosas que realmente no entiendo del código y yo no tenia claro como implementarlo, pero buscando mas encontré uno en esta dirección: http://ungranoparajava.blogspot.com/2008/07/un-value-para-jcombobox.html , que esta mas corto y mas sencillo para los que tenemos poco conocimiento en java, adaptandolo un poco me quedo asi:

Una clase llamada persona.java
Código java:
Ver original
  1. public class persona {
  2.   private String nombre;
  3.   private String id ;
  4.  
  5.   public persona(String nombre , String id ) {
  6.     this.nombre=nombre;
  7.     this.id=id;
  8.   }
  9.  
  10.   public String getID(){
  11.     return id ;
  12.   }
  13.  
  14.   public String toString() {
  15.     return nombre ;
  16.   }
  17. }

Dentro de un evento pongo este codigo para llenar el JComboBox:
Código java:
Ver original
  1.       try {        
  2.             Conexion();
  3.             Statement stmt = conexion.createStatement();
  4.             ResultSet rs = stmt.executeQuery("SELECT id,nombre FROM Tabla1 ORDER BY id ASC");      
  5.             value =new DefaultComboBoxModel();
  6.             cmbCombo.setModel(value);
  7.          while (rs.next()) {        
  8.            value.addElement(new persona(rs.getString("Nombre"),rs.getString("id")));
  9.          }
  10.          rs.close();
  11.          conexion.close();
  12.         } catch (Exception ex) {
  13.          ex.printStackTrace();
  14.         }

Por ultimo como prueba que funciona, agregue un Jlabel donde muestro el id, y con el evento ActionPerformed pongo este otro código:
Código java:
Ver original
  1. persona persona=(persona) cmbCombo.getSelectedItem();
  2. String id = persona.getID();
  3. lblId.setText(id);

Gracias por las guías, y espero a otro les pueda servir también.
  #5 (permalink)  
Antiguo 18/01/2011, 10:26
 
Fecha de Ingreso: enero-2011
Ubicación: Bogota, Colombia
Mensajes: 81
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Obtener id de bd al seleccionar item de jcombobox

oye que buen aporte fijate que estoy en el mismo inconveniente pero como se haria si estoy trabjando netamente MVC porfa ayudame

Etiquetas: bd, item, jcombobox, seleccionar
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 21:33.