problemas para sacar datos de un jtable(SOLUCIONADO)

Iniciado por basickdagger, 17 Marzo 2011, 10:15 AM

0 Miembros y 1 Visitante están viendo este tema.

basickdagger

hola, no llevo mucho tiempo programando en java y con objetos ahi disculpen si mis errores son muy tontos, el problema es este... tengo un jtable al q le cargo informacion, al darle click a un boton quiero jalar todo lo q haya en la columna 1 de todas las filas y un jtextfield... les dejo el pedazo de codigo

try {
int id=0;
id =(Integer.parseInt(txtidfac.getText()));// saco el valor del jtextfield

                       bd.abrir();//abro la clase bd q es mi base de datos en mysql y mi conector

                       System.out.println("este es id factura" + id);// este lo utilizo solo para ver si esta tomando el valor de mi textfield

                       int  idproducto=0;

                      for(int a=0; a<modelolista.getRowCount(); a++){// este lo utilizo para q cuente todas las posiciones de fila q haya

idproducto = ((Integer) modelolista.getValueAt(a,0)).intValue();// aki guardo las posiciones en idproducto

System.out.println("este es id producto" + idproducto);//lo utilizo para saber si lo esta guardando

                    datosmn.setId(id);//datosmn es mi clase de getters y setters
                    datosmn.setId_producto(idproducto);//aki cargo el objeto
                    bd.InsertarListado(datosmn);// envio el objeto a mi metodo insertarlistado q tengo en mi clase bd

}

}catch (SQLException ex) {}// cacho la excepcion
bd.cerrar();//cierro mi base de datos


el problema es q si me guarda lo q tengo en mi jtextfield, pero me manda una exception y ni si kiera me guarda el valor de idproducto... cuando me voy al error me envia un error en esta linea...

idproducto = ((Integer) modelolista.getValueAt(a,0)).intValue();

pero solo al correrlo y ejecutar le boton... q piensan ustedes? hay alguna otra manera de cargar la primer celda de mi jtable de todas las filas? espero q me haya hecho entender  =)

basickdagger

alguien q se apiada de mi alma!!!  :-(  xD

hack-4-life

Cita de: basickdagger en 17 Marzo 2011, 10:15 AM
idproducto = ((Integer) modelolista.getValueAt(a,0)).intValue();// aki guardo las posiciones en idproducto
XD lo que veo es que no estas inicializando bien el metodo,yo lo haria algo como esto

tabla.addMouseListener(new MouseAdapter()
   {
      public void mouseClicked(MouseEvent e)
      {
         int fila = tabla.rowAtPoint(e.getPoint());
         int columna = tabla.columnAtPoint(e.getPoint());
         if ((fila > -1) && (columna > -1))
            System.out.println(modelo.getValueAt(fila,columna));
      }
   });

solo basta implementar bien este metodo modelo.getValueAt(fila,columna)); saludos XD yo tambien estoy aprendiendo jtable...
""DE QUE SIRVE EL CONOCIMIENTO SI SE PRIVA DE SU DISTRIBUCION"

basickdagger

pero... el mouseClicked creo q es cuando das click sobre la celda o fila...

en este caso quieor meter lo haya en una columna peor de todas las filas por ejemplo


id producto cantidad
100             2
300             7
650             1

quiero q cuando le de al boton guarde el 100,300 y 650 en la base de datos...

hack-4-life

XD para empezar,trabaja como yo,no solo por programar,por programar te recomiendo MVC(model view controller) trabaja con clases,no todo el codigo en uno solo,asi solo manda a llamar un objeto en el actionPerformedEvent del JButton,asi evitas el error que te causa en el boton que dices saludos,yo hize algo paracido a lo que necesitas xd,dejame buscarlo y te lo paso saludos XD
""DE QUE SIRVE EL CONOCIMIENTO SI SE PRIVA DE SU DISTRIBUCION"

basickdagger

de hehco trabajo con ese control eso l otengo en un metodo donde mando llamar a varios objetos .. no lo aviento todo de golpee es para probar =)

hack-4-life

te dejo esto xd,espero haberte ayudado,no estoy haciendo spam solo es por ayudar saludos
te dejo este hilo siguele,creo que eso es lo que necesitas saliudo xd
http://jujuyjug.blogspot.com/2008/10/uso-de-jtable-iii-3-seleccionar-una.html
""DE QUE SIRVE EL CONOCIMIENTO SI SE PRIVA DE SU DISTRIBUCION"

basickdagger

#7
lo eh podido resolver, aunque l oq venia ne la pagina era diferente, me sirvio una linea q adapte... y entonces mi codigo quedaria asi....



try {
int id=0;
id =(Integer.parseInt(txtidfac.getText()));// saco el valor del jtextfield

                       bd.abrir();//abro la clase bd q es mi base de datos en mysql y mi conector

                       System.out.println("este es id factura" + id);// este lo utilizo solo para ver si esta tomando el valor de mi textfield

                       String  idproducto="";// primero usare en string, por q ocn entero n ofunciono hahaha

                      for(int a=0; a<modelolista.getRowCount(); a++){// este lo utilizo para q cuente todas las posiciones de fila q haya

idproducto = String.ValueOf(modelolista.getValueAt(a,0));// aki guardo las posiciones en idproducto

System.out.println("este es id producto" + idproducto);//lo utilizo para saber si lo esta guardando, aki me aparecen ya los datos

                    datosmn.setId(id);//datosmn es mi clase de getters y setters
                    datosmn.setId_producto(idproducto);//aki cargo el objeto
                    bd.InsertarListado(datosmn);// envio el objeto a mi metodo insertarlistado q tengo en mi clase bd

}

}catch (SQLException ex) {}// cacho la excepcion
bd.cerrar();//cierro mi base de datos


y con eso funciona.. aunq despues tengo q convertir idproducto a Int pero asi si me sirve.. haha no entiendo por q suceda estoo, por q afuerza tengo q pasar la linea a String.. pero! q diablos! el proyecto tengo q entregarlo mañana y mientras funcione luego averiguare lo demas haha xD   Gracias!.. LO PONGO COMO SOLUCIONADO POR SI ALGUIEN Q TENGA ESTA DUDA SEPA Q YA SE SOLUCIONO HAHA Y NO PIERDA TANTO TIEMPO COMO YO EN BUSCARLE =)