Combo Box en Java

Respuesta de
a
Avatar
Usuario
Hola muy buenos días tengas, mi pregunta es la siguiente fíjate que estoy haciendo una aplicación
en Java con mysql y pues la verdad tengo un combobox y lo quiero cargar con datos de la base de datos
en este caso en mi combo quiero que se cargen los id de los usuarios que tengo guardada en la tabla de
usuarios y meto este código y no me hace nada en la aplicación me podrías ayudar a detectar el
error porque netbeans no me dice que exista error más sin embargo a la hora de ejecutar la aplicación
no me aparece nada por tu atención muchas gracias utilizo netbeans 6.9.1 con base de datos mysql
          private void jComboBox3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
              Statement instruccion1;
        try {
            conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/radioiguala","root","");
            // crear objeto Statement para consultar la base de datos
            instruccion1 = conexion.createStatement();
            // consultar la base de datos
            ResultSet conjuntoResultados = instruccion1.executeQuery( "SELECT usuarios.id_usuario  FROM usuarios ");
            while (conjuntoResultados.next()) {
                jComboBox3.addItem(conjuntoResultados.getString("usuarios")); //agregamos el valor de la base de datos al jcombobox
          
            }
        } catch(Exception e){
            System.err.println("Error en abrir la conexión");
            System.err.println("ERROR:"+e.getMessage());
            System.exit(0);
        }
    }
Avatar
Experto
Hola, que tal:
Veo que el código lo tienes metido dentro del actionPerformed del combo, es decir, que parece que se ejecutará cuando selecciones algo en el combo. Si lo que quieres es cargar el combo antes de que se muestre, tendrás que sacar tu código del actionPerformed, y ponerlo detrás de la creación del combo:
JComboBox jComboBox3 = new JComboBox();
Statement instruccion1=null; 
ResultSet conjuntoResultados=null;
        try { 
            conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/radioiguala","root",""); 
            // crear objeto Statement para consultar la base de datos 
            instruccion1 = conexion.createStatement(); 
            // consultar la base de datos 
            conjuntoResultados = instruccion1.executeQuery( "SELECT usuarios.id_usuario  FROM usuarios "); 
            while (conjuntoResultados.next()) { 
                jComboBox3.addItem(conjuntoResultados.getString("usuarios")); //agregamos el valor de la base de datos al jcombobox 
           
            } 
        } catch(Exception e){ 
            System.err.println("Error en abrir la conexión"); 
            System.err.println("ERROR:"+e.getMessage()); 
            System.exit(0); 
        }
finally{
try{
conjuntoResultados.close();
instruccion1.close();

}catch (Exception ex){
}
}

He metido el código para cerrar el resultset y el statement, que no lo tenías.
Saludos:
Carlos.