Page 1 of 1

Duda sobre Java para los informaticos

Posted: 20 Mar 2014, 19:30
by Mansonurien
El caso es que estoy haciendo un pequeño proyecto java para clase y esta practicamente terminado, pero me queda solucionar un pequeño problema que se me está resistiendo. A ver si me podeis echar una mano. xP

El caso es el siguiente:
Es un programa sencillo con una base de datos MySQL con tres tablas: Directores de cine, Productoras de cine y Peliculas y a la hora de guardar las peliculas guardo todos sus datos mas el codigo de del director y el de la productora.

El problema esta en que para guardar los dos codigos esos hay que cojerlos de dos jComboBox (uno que tiene los nombres de los directores y otro con el nombre de las productoras) y necesito tener cada nombre seleccionado para poder guardarlos. Cuando selecciono un item de uno de los jComboBox se mantiene seleccionado pero al ir a coger el segundo se deselecciona y por lo tanto solo puedo guardar uno de ellos quedando el otro en 0.

Para coger los datos de los jComboBox utilizo lo siguiente:
//Todo pasa al pulsar el btnNuevo
if (boton == btnNuevo){
try {
//Aqui paso todo lo que necesito a otra funcion donde se hace la insert
peli.insertPeli (list.getLastVisibleIndex () + 2, txtTitulo.getText (), txtOriginal.getText (),
txtPais.getText (), Integer.parseInt (txtAnio.getText ()), txtGenero.getText (), txtDuracion.getText (), cogerDire (), cogerProduc ());//Las dos ultimas funciones son las que utilizo para coger los codigos del director y la productora
ver (); //Esto solo sirve para volver a mostrar todas las peliculas en un jList
} catch (ClassNotFoundException e1) {
e1.printStackTrace ();
}
}

//y en estas dos funciones cojo los nombres de los jComboBox y de ellos cojo sus codigos con una select que estan en otras funciones llamadas codDir () y codProd ()
public int cogerDire (){
Object o = cBoxDir.getSelectedItem ();
String d = String.valueOf (o);
int cd = peli.codDir (d);

return cd;
}

public int cogerProduc (){
Object o = cBoxProd.getSelectedItem ();
String p = String.valueOf (o);
int cp = peli.codProd (p);

return cp;
}
Como he dicho antes todo funciona perfectamente pero solo puedo cojer uno de los jComboBox, el que este seleccionado. He estado buscando entre las funciones de los jComboBox y por internet pero no he encontrado nada. Espero que me podais ayudar.

Gracias de antemano!! xP

Re: Duda sobre Java para los informaticos

Posted: 20 Mar 2014, 20:03
by Gerwulf
Bueno así mirando por arriba me llama la atención esto:

Tanto en coger director como coger produc tienes "Object o" y "cBoxDir.getSelectedItem ();" por lo que para empezar estas cogiendo siempre el mismo jcombobox y segundo tienes 2 objetos llamados o en teoría no debería pasar nada puesto que recoges el valor independientemente en cada función pero por si acaso cambia el nombre de uno de los objetos en una función.

Intenta cambiar el nomber de Object o y pon otra letra y mira a ver porque llamas 2 veces a cBoxDir supongo que tendria que ser cBoxDir y cBoxPro, es decir, crear un objeto para cada combobox.

Es lo único que veo así. Espero que te sea de ayuda.

Re: Duda sobre Java para los informaticos

Posted: 21 Mar 2014, 00:19
by Mansonurien
Anda, pos no me habia fijado en eso!! Se me habria olvidado cambiarlo al copiarlo. Ya probare mañana entonces, seguramente me habria pasado un buen rato mirando el codigo como un idiota sin saber que le pasa, Jeje.

Muchas graxias Gerwulf!! xP
Cuando lo pruebe ya habisare si se ha solucionado o no. Thankius!!

Re: Duda sobre Java para los informaticos

Posted: 22 Mar 2014, 11:50
by Mansonurien
Ya lo he cambiado eso y lo he comprobado, pero sigue sin funcionar. Si selecciono un elemento en l jComboBox de directores y despues otro elemento en el de productoras el jComboBox de productoras se me guarda bien en la base de datos pero el de directores se queda deseleccionado y me guarda 0.

Re: Duda sobre Java para los informaticos

Posted: 22 Mar 2014, 14:46
by Gerwulf
Bueno veamos. En principio no se debería deseleccionar porque no estas cogiendo parámetros según el que este en focus sino por la opción visible de cada uno. Por lo que probablemente puede que el error este por aquí.

int cd = peli.codDir (d)
int cp = peli.codProd (p);

Al tener esto he de suponer que tienes alguna clase peli creada la cual he de suponer que le estas pasando el nombre para obtener el numero de algo, quizas haya algun fallo por ahi que este incordiando. Mira a ver si es eso. Sino el problema es los focus de los jcombobox.

También prueba la función getSelectedIndex() que creo recordar aun existe a ver si eso te soluciona más rapido pues te devuelve el numero directamente creo.

Re: Duda sobre Java para los informaticos

Posted: 23 Mar 2014, 13:22
by Mansonurien
Ya he corregido el fallo. Al parecer no estaba donde yo pensaba. El fallo estaba en que al coger el nombre del director desde el jComboBox, no solo cogia su nombre sino el nombre mas su apellido y al igualarlo al nombre q habia en la base de datos no lo reconocia y por eso me daba 0. Pero bueno, ya le he hecho un subtring para q me coja solo el nombre y ahora va perfecto. Muchas gracias por tu ayuda de todas formas!! xP

Nos vemos!!!

Re: Duda sobre Java para los informaticos

Posted: 23 Mar 2014, 14:32
by Gerwulf
Nada, cualquier cosa de programación por aquí estaré xD