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

Obtener datos de BD y mostrar en JComboBox

Estas en el tema de Obtener datos de BD y mostrar en JComboBox en el foro de Java en Foros del Web. HOla a todos, Un previo saludo. TEngo una consulta, como puedo mostrar datos en un JComboBox, estos datos son recuperados de un Gestor de datos, ...
  #1 (permalink)  
Antiguo 27/08/2009, 15:12
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Obtener datos de BD y mostrar en JComboBox

HOla a todos, Un previo saludo.

TEngo una consulta, como puedo mostrar datos en un JComboBox, estos datos son recuperados de un Gestor de datos, inicialmente tenia esta idea, pero no me muestra ningun dato, esmas tampoco me muestra la ventana, me podrian decir cual es el error ó sino darme otra solucion. gracias, aqui les dejo el codigo:

Cita:
JComboBOx CBEstado = new ......
try{

ConnBD = new Conexion();

Statement Consulta = ConnBD.getConnection().createStatement();

ResultSet Resultado = Consulta.executeQuery("SELECT Descripcion FROM DetalleHabitacion");

int a=0;

if(Resultado.next())

{

CBEstado.addItem(Resultado.getString("Estado"));

}

}
  #2 (permalink)  
Antiguo 28/08/2009, 01:09
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Obtener datos de BD y mostrar en JComboBox

Hola:

Si hay varios items, en vez de if(Resultado.next()), pon un while(Resultado.next()).

Pon algunos System.out.print para ver si realiza la consulta, entra en el bucle, en el catch() por si hay alguna excepción, etc.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 28/08/2009, 07:07
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Obtener datos de BD y mostrar en JComboBox

HOlas, gracias por tu respuesta.

:D bueno disculpa tienes razon no es un if es un while, pero aun asi no funciona. trato de agregar los items, pero nada, este codigo lo puse en el constructor de un codigo,.....

gracias
  #4 (permalink)  
Antiguo 29/08/2009, 07:25
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Obtener datos de BD y mostrar en JComboBox

¿Has probado a poner el System.out o usar el debugger para ver si hace la consulta y si trae algún resultado?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 01/09/2009, 12:02
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Obtener datos de BD y mostrar en JComboBox

obvio q no te va funcionar si en el SQL estás diciendo
SELECT Descripcion <--- COMO ÚNICO CAMPO DE RETORNO de la tabla Detalle......
y en ResultSet.getString("Estado") le estás diciendo que tome el valor de la COLUMNA "Estado" ... la cual NO está incluida en el SELECT...

PD: si es postgres tenés q poner entre \"Detallehabilitacion\" cuando hay AlgUnA maYúscula en el nombre de la tabla o columna de estas
  #6 (permalink)  
Antiguo 02/09/2009, 10:39
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Obtener datos de BD y mostrar en JComboBox

Saludos. gracias por sus respuestas,

Bueno tenés razón, lo voy a cambiar y les cuento como me fue :D
  #7 (permalink)  
Antiguo 08/09/2009, 22:02
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Obtener datos de BD y mostrar en JComboBox

Bueno cambié todas las sugerencias que me dijeron, cuando los datos recuperos de la BD y los muestro en modo consola funciona perfectamente, el problema es cuando lo hago con JComboBox, aqui les dejo todo lo que hice:
Código PHP:
try{

        
ConnBD = new Conexion();

        
Statement Consulta ConnBD.getConnection().createStatement();

        
ResultSet Resultado Consulta.executeQuery("SELECT Descripcion FROM detallehabitacion");

        while(
Resultado.next())

        {

            
//System.out.print("habi"+Resultado.getString("Descripcion"));

            
String Estado Resultado.getString("Descripcion");

            
CBTipoHabitacion.addItem(Estado);

        }

}

catch(
SQLException ex)

{

    
JOptionPane.showMessageDialog(AgregarHabitacion.this,"Se encontro el siguiente error\n"+ex,"Error referido a la base de datos",JOptionPane.ERROR_MESSAGE);


y este es el error que me dice que tengo:

Código PHP:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

    at AgregarHabitacion
.<init>(AgregarHabitacion.java:42)

    
at SysHotel$Eventos.actionPerformed(SysHotel.java:99)

    
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

    
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

    
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

    
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

    
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

    
at java.awt.Component.processMouseEvent(Component.java:6041)

    
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

    
at java.awt.Component.processEvent(Component.java:5806)

    
at java.awt.Container.processEvent(Container.java:2058)

    
at java.awt.Component.dispatchEventImpl(Component.java:4413)

    
at java.awt.Container.dispatchEventImpl(Container.java:2116)

    
at java.awt.Component.dispatchEvent(Component.java:4243)

    
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

    
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

    
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

    
at java.awt.Container.dispatchEventImpl(Container.java:2102)

    
at java.awt.Window.dispatchEventImpl(Window.java:2440)

    
at java.awt.Component.dispatchEvent(Component.java:4243)

    
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

    
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

    
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

    
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

    
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

    
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

    
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)



Process completed
  #8 (permalink)  
Antiguo 08/09/2009, 23:29
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Obtener datos de BD y mostrar en JComboBox

¿Cual es la línea AgregarHabitacion.java:42 ?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 09/09/2009, 06:33
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Obtener datos de BD y mostrar en JComboBox

y ese bloque try {} catch {} debe ser la fx AgregarHabitación()... lo mas problable es que el combobox no esté inicializado..
sinó usá uno DefaultComboBoxModel y listo...

PD: no pierdas tiempo personalizando así un CATCH.. dejalo tal cual como te lo forma el IDE

catch(SQLException ex) {
JOptionPane.showMessageDialog(AgregarHabitacion.th is,"Se encontro el siguiente error\n"+ex,"Error referido a la base de datos",JOptionPane.ERROR_MESSAGE);

}
  #10 (permalink)  
Antiguo 15/09/2009, 16:30
Avatar de hnesys  
Fecha de Ingreso: febrero-2009
Ubicación: Huancané,Puno,Perú
Mensajes: 116
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Obtener datos de BD y mostrar en JComboBox

Hola.
Gracias por la ayuda y tenias razon el problema era la inicializacion del JComboBox, lo que pasa es que lo tenia inicializado mas abajo :D, bueno gracias por la ayuda.
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:17.