Título: [Solucionado] JAVA Como Refrescar JTable Publicado por: MiguelP en 19 Marzo 2014, 17:32 pm Hola amigos buenos días tengo un gran problema al no poder refrescar mi JTable se que hay varios foros vídeos pero por mas que los aplico no me actualiza mi JTable espero puedan ayudarme, les explico un poco tengo en mi clase formulario mi JFrame con todos los controles y aparte mi clase modelo con los modelos que le adjunto al JTable para que de ahi pasen a mi formulario y lo pegue nada mas.Todo estaba bien hasta que ahora que quiero refrescar mi jtable no lo hace le hice seguimiento y llena mi modelo refrescarDatos pero al terminar con todos los datos cargados llega vació a mi jtable me bota el siguiente error : Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
aquí les dejo el código para que tengan una visión mas clara: aquí lleno mi método de insertar datos y mi modelo para que se actualice al insertar los datos, están en un jdialog se llenan al presionar el botón aceptar: Código: info.InsertarDatosC(var1,var2,var3,varvalue1,varvalue2,varvalue3,vare1); Y este es mi modelo: Código: public DefaultTableModel refrescarDatos(String variable) throws SQLException { No se si deba usar algo como un método aparte para actualizarla...si fuera así por favor como debería hacer. Espero en verdad puedan ayudarme necesito ayuda con urgencia estaré al tanto saludos amigos. Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 19 Marzo 2014, 17:47 pm Hola,
Para poder brindar una mejor ayuda, por favor etiqueta tu código entre etiquetas GeSHi y coloca el rastreo de pila que te arroja printStackTrace(). Saludos. Título: Re: JAVA Como Refrescar JTable Publicado por: MiguelP en 19 Marzo 2014, 17:51 pm ya lo hice amigo espero me puedas ayudar saludos
Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 19 Marzo 2014, 18:07 pm Necesito el rastreo completo de pila no solamente el tipo de excepción. En el rastreo de pila te indica la causa, y la posible línea que lanza la excepción. Es muy importante el análisis de excepciones.
El rastreo de pila es parecido a ésto: Código
PD: Primero tienes que agregar el modelo a la tabla, y a partir de ahí agregar los datos al modelo. Primero agrega un DefaultTableModel a tu tabla, y luego modifica el método refrescarDatos() para que reciba el modelo y le agregue las filas. Puede ser por esto que te lanza el NullPointerException. Título: Re: JAVA Como Refrescar JTable Publicado por: MiguelP en 19 Marzo 2014, 18:29 pm Este es el rastro completo de la pila:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at formulario.JDialog.actionPerformed(JDialog.java:170) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) tambien he probado dandole : table.setModel(form.refrescarDatos(opt)); y me da el mismo error. Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 19 Marzo 2014, 18:51 pm Hmm ese log no ayuda en nada. Lo que tienes aquí es un problema de nullabilidad de algún objeto, es decir, algún objeto no ha sido inicalizado y estás tratando de acceder a él. Si tienes un NullPointerException en el catch colócalo y vuelve a probar para ver si te da un rastreo de pila más específico.
Título: Re: JAVA Como Refrescar JTable Publicado por: MiguelP en 19 Marzo 2014, 20:26 pm era porque no le pasaba mi JTable a mi clase ya se la paso, pero ahora no me muestra nada se queda ahi no me ejecuta mi boton...alguna idea? ayudame porfa
Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 19 Marzo 2014, 20:40 pm Ya ves, solo es cuestión de saber interpretar las Excepciones (te recomiendo leer sobre esto y sobre debug).
¿Dices que pulsas el botón y no pasa nada? Pega el código que tienes en el actionPerformed de tu botón para poder verlo. Título: Re: JAVA Como Refrescar JTable Publicado por: MiguelP en 19 Marzo 2014, 22:01 pm Te explico :
Tengo mi clase formulario donde están ubicados todos mis controles la mayoría, he creado una clase JDialog que es una ventana que al seleccionar un radiobutton y darle clic en aceptar (En la clase formulario) llamo a la clase JDialog lleno mi método JDialogdinamico le paso las variables y armo mi ventana donde me muestra campos para poder ingresarlos y realizar mi insert, hasta ahi todo bien hace lo que qiero me inserta n la base de datos perfecto, ahora el problema era como refresco mi JTable?pense en ponerle un select llenar mis filas y pasarselas al modelo, se llenan tengo mi objeto con los datos pero me salio el error de que no le pasaba la tabla ahora que se la paso no se muestra mi JDialog. No se que pueda ser aqui te paso el codigo de mi boton aceptar formulario: Código: if(e.getSource()==btnAceptarM){ Ahi ya llene mi Jdialogdinamico ahora te paso el codigo de mi boton aceptar de mi clase JDialog Código: @Override Espero me puedas ayudar saludos. Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 19 Marzo 2014, 22:58 pm Hola, disculpa la demora. La verdad te entiendo poco (quizás soy un poco lerdo para entender xD). Según tengo entendido a partir de un JFrame quieres crear un JDialog para inserción de datos y luego esos datos mostrarlos en una JTable. ¿Estoy bien?
Bien primero debes saber que un JDialog debe tener un padre, que debe ser un JFrame o Frame (AWT). Así que quizás es por eso que no te lo muestra. Te coloco un par de códigos de lo que yo entiendo que quieres hacer: JFrame: Código
JDialog: Código
Esta sería la forma de a partir de un JFrame crear un JDialog y en éste crear una tabla. Saludos. Título: Re: JAVA Como Refrescar JTable Publicado por: MiguelP en 20 Marzo 2014, 00:04 am Muchas gracias por la ayuda amigo, hice exactamente lo que dices es mas puse un print y me sale que hace el select * from mitabla pero no se refresca el JTable... es mas puse
tblDatos .setModel(agregarFila(modelo)); y tampoco...se ejecuta el select pero no refresca el jtable que crees que pueda hacer Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 20 Marzo 2014, 00:29 am Hola de nuevo,
Cambia esto: Código
Por esto: Código
Fuera del while imprime el array data para ver los datos que han sido recuperados de la database: Código
Título: Re: JAVA Como Refrescar JTable Publicado por: MiguelP en 20 Marzo 2014, 15:17 pm Hola que tal Mitsu. probé tu código y tengo un problema para empezar tu me lo pasas de un modo yo lo tenia de otro y lo adecue te lo pongo para saber si hace lo mismo:
Código: public DefaultTableModel agregarFila(DefaultTableModel modelo) throws SQLException { lo saque y puse lo que me sugeriste : Código: public DefaultTableModel agregarFila(DefaultTableModel modelo) throws SQLException { tengo el problema que el if(rs.next()=null) { modelo.addRow(datos); } no puedo igualarlo me dice que no es un argumento recibido == para tipos boolean. Espero me puedas ayudar para poder terminar este tema, ah para probar cree un botón en mi clase formulario y le puse el refrescarDatos y me actualiza la lista -.- osea nose xq no sale así automático...espero tu respuesta amigo saludos. Te comento que estoy trabajando con JAVA y oracle saludos. Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 20 Marzo 2014, 15:25 pm Saca esa línea, tiene que quedarte así:
Código
NOTA: Los flujos se cierran siempre en un finally, ya que así ocurra una excepción nos aseguramos que la conexión se haya cerrado. Código
Pega lo que imprime, para saber si se está guardando la información de la tabla en el array con su correspondiente tipo de dato. Salu2. PD: Si le pasas por parámetro el modelo de la tabla, ¿para qué la devuelves nuevamente? ¿Estás haciendo algo así no? Código
Pero no sería necesario. Acuérdate que en Java el paso es por referencia (tipo punteros en C++), por lo que solamente bastaría con un agregarFila(modelo); y el cambio se reflejaría en el modelo. Ej.: Código
Título: Re: JAVA Como Refrescar JTable Publicado por: MiguelP en 20 Marzo 2014, 17:49 pm Hola Mitsu llegue a resolver mi problema de la siguiente manera:
En mi clase formulario herede los botones de mi clase JDialog y ahí hice lo siguiente : Código: jd.getBtnAceptarC().addActionListener(new ActionListener() { Es decir cada vez que hago un insert agrego una fila con los campos ingresados en mi JDialog y los pega en el JTable con esto puedo salir del problema. Te agradezco por toda la ayuda y estaré en contacto para próximas dudas saludos. Título: Re: JAVA Como Refrescar JTable Publicado por: Mitsu en 20 Marzo 2014, 17:54 pm Listo, me alegra que se haya solucionado tu problema. Por eso te decía, que primero siempre se agrega el modelo a la JTable y recién se empieza a agregar datos. Cualquier duda, puedes postearla en ElHacker.net (http://foro.elhacker.net) que seguro te apoyaremos.
Como última recomendación, te invito a que investigues sobre buenas prácticas de programación, cómo trabajar con bases de datos y patrones de diseño. Con ésto, tendrás un código muy limpio y entendible. Recuerda además, comentar siempre tus códigos, así cuando otro lo vean, sepan qué hace el código y no se pierda intentando decifrarlo. Un saludo amigo. PD: Edita el tema y coloca [Solucionado] antes del tema. Título: Re: [Solucionado] JAVA Como Refrescar JTable Publicado por: Debci en 22 Marzo 2014, 21:32 pm Grandes respuestas, Mitsu! :)
Cierro el post! Saludos Título: [Solucionado] JAVA Como Refrescar JTable Publicado por: Debci en 22 Marzo 2014, 21:32 pm El mensaje '[Solucionado] JAVA Como Refrescar JTable (http://foro.elhacker.net/index.php?topic=410908)' fue bloqueado
Tópico completamente explotado. Gracias por traernos tu duda :) Ahora otros como tú podrán beneficiarse de esta solución :) Leer reglas: http://foro.elhacker.net/reglas |