Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Pasar datos de jList a jTextField

Hola
Para pasar un dato de un jList a un JtextField.
El jList contiene el nombre de los proveedores de una base de datos.
En el jTextField quiero obtener el código del proveedor que se seleccione.

Muestro el trozo de código el fallo supongo que será en: jTextFieldCodigoProveedor.setText(String.valueOf(datos [0]));
Que no se como mostrar el resultado obtenido...


private void jListProveedoresMouseClicked(java.awt.event.MouseEvent evt) {
Object valor2 = jListProveedores.getSelectedValue();
Object [] datos = new Object [1];
try {
Statement st = cn.createStatement(); //Se crea un objeto de tipo Statement.
ResultSet rs1 = st.executeQuery("SELECT CodigoProveedor FROM proveedores WHERE Nombre LIKE '%"+valor2+"%'");
datos [0] = rs1.getInt("CodigoProveedor");

jTextFieldCodigoProveedor.setText(String.valueOf(datos [0]));

} catch(Exception ex) {
Logger.getLogger(Proveedores.class.getName()).log(Level.SEVERE, null, ex);
}
}

octubre 22, 2016 | Registered Commentertesi

Hola, en lugar de hacer:

datos [0] = rs1.getInt("CodigoProveedor");


Cámbialo por lo siguiente:



int codigo=-1;
if(rs1.next()){
codigo=rs1.getInt(1);
jTextFieldCodigoProveedor.setText(codigo+"");

}
else{
JOptionPane.showMessageDialog(null, "No se han encontrado datos.");
}

Prueba a cambiar tu linea por lo que te puse ahi, y ya nos cuentas, la llamada a next sobre el resultSet es necesaria, hace que el digamos puntero del resultset se posicione en la siguiente posición con datos, ya que es una estructura iterativa y aunque en tu caso, solo haya un dato(código del proveedor), es necesario iterar sobre ella, en este caso solo una vez.


Por otro lado te voy a dar un consejo porque lo que estas haciendo, puede darte problemas.... Imagina que en la lista tienes una empresa que se llama "Hiper" y otra que se llama "Hipercor", si yo selecciono la empresa Hiper, y le doy a consultar el código, la sentencia me va a devolver 2 códigos, el de hiper, y el de hipercor.

Bueno, piensa en esto, y ya nos cuentas. Un saludo

octubre 23, 2016 | Registered Commenterloderain

Muchisimas gracias por solucionarmelo ya me funciona.
Lo que dices es cierto ya lo había pensado porque al no ser clave primaria el nombre puede haber otro igual y joderte pero bueno como no es algo serio se quedara así.
Lo de inicializar la variable codigo a -1 no hace nada al menos yo lo he quitado y no pasa nada porque también he introduccido String y tal..
En fin muchas gracias, un saludo! :)

octubre 23, 2016 | Registered Commentertesi